3

C++ 標準ライブラリを使用してファイルのサイズを変更する方法について、合理的な解決策が見つからなかったことに驚いています。元のファイルからデータを読み込んでから別のファイルに書き込むというのは、まったくばかげて無駄なことのように思えます。そのサイズを超えるデータを切り取るサイズ変更メソッドが必要なだけです...これを行うものはありますか?

編集:上記で説明した方法を使用する必要がある場合、読み取り/書き込みに使用しているバッファーの大きさはどれくらいですか? ここではかなり大きなファイルを扱っているため、明らかにファイル全体を一度に読み取ることはできません。

4

4 に答える 4

8

Boost.Filesystemによって提供される関数、特にそのresize_file()関数を使用できます。

Boost.Filesystem は、言語標準の将来のイテレーションに含まれる (予定されている) ことに注意してください。ここを参照してください。プロジェクトで Boost を使用したくない場合、これは朗報です。

また、@BenjaminLindley が言及したように、<filesytem>ヘッダーは Visual Studio 2012 で既に利用可能です (こちらを参照してください。「ファイルシステム」を検索してください)。

于 2013-06-19T02:55:33.040 に答える