[filesystem] how to set a file size?

Forgive me for the n00b-ish (and slightly offtopic) question, but is there any way in standard C++ or in Boost.Filesystem to truncate a file to a particular size? With std::ofstream, I can either truncate a file on open to 0 size, or else open it in overwrite mode and scribble over it, but when I'm done, I don't seem to have a way of saying, "The end of the file is now *here*." Is that right? And if so, does Boost.Filesystem have an API for this? Thanks, -- Eric Niebler BoostPro Computing http://www.boostpro.com

Roland Bock wrote:
It doesn't look like these functions exist for MSVC users. So it seems there is no portable way to change the size of a file. Beman, would this make a good addition to the filesystem library? -- Eric Niebler BoostPro Computing http://www.boostpro.com

Beman Dawes wrote:
This has now been implemented for Boost.Filesystem V3, with the signature: void file_size( const path& p, uintmax_t size, system::error_code& ec = throws() ); ). See http://svn.boost.org/svn/boost/sandbox/filesystem-v3 I found the POSIX "truncate" name misleading, since on both POSIX and Windows the file can be extended as well as truncated. There is steady progress on V3, so I'm hoping it is ready for a beta in a couple of weeks. --Beman
participants (6)
-
Beman Dawes
-
Bill Buklis
-
Eric Niebler
-
OvermindDL1
-
Roland Bock
-
Scott McMurray