• ベストアンサー

フォルダ内の全ファイルの容量

あるフォルダをごっそりバックアップしようとしています。 そこで、フォルダにあるファイル全部の合計容量を調べるような関数ってありますか? *.datのような指定が出来ればなおgoodです。

質問者が選んだベストアンサー

  • ベストアンサー
  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.2

windowsならDOS画面でdir /sとコマンドを打つと ファイルの総数: 1691 個のファイル 4,712,226 バイト のように表示されますので、この表示内容を、プログラムに取り込んではいかがでしょうか。 もちろん、dir /sと手でうつのではなく、system命令で実行します。 unixなら duコマンドディレクトリ下の総量が得られます。

red_hot_boy
質問者

お礼

あ、そういうやり方もありますね。 アドバイスありがとうございます。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.1

>全部の合計容量を調べるような関数ってありますか? ありません。処理系に依存します。 WindowsならFindFirstFile、FindNextFile、FindCloseでファイルリストを取得します。 WIN32_FIND_DATAをみればディレクトリかファイルかがわかるので ディレクトリならば再帰的にFindFirstFile・・・を実行していきます。 そして見つかったファイルの合計サイズを求めます。 1つのファイルに対しては CreateFile → GetFileSize → CloseHandle(fopen → fseek → ftell → fcloseでもok) で求めます。 各APIの使い方に関してはMSDN等を参照してください。 http://www.microsoft.com/JAPAN/developer/library/jpwinpf/_win32_findfirstfile.htm >*.datのような指定が出来ればなおgoodです。 FindFirstFileでは*(ワイルドカード)の指定が可能です。 linuxなら<dirent.h>をincludeしopendir、readdir、closedirで可能なようです。

red_hot_boy
質問者

お礼

Windowsの質問でした。 やはり、一発で分かる関数はないのですね。 1ファイルずつやるのが面倒だと思ったので質問させてもらいました。 ありがとうございます。

すると、全ての回答が全文表示されます。

関連するQ&A