電子書籍の厳選無料作品が豊富!

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

A 回答 (2件)

windowsならDOS画面でdir /sとコマンドを打つと


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

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

お礼日時:2006/09/14 19:05

>全部の合計容量を調べるような関数ってありますか?


ありません。処理系に依存します。

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 …

>*.datのような指定が出来ればなおgoodです。
FindFirstFileでは*(ワイルドカード)の指定が可能です。


linuxなら<dirent.h>をincludeしopendir、readdir、closedirで可能なようです。
    • good
    • 0
この回答へのお礼

Windowsの質問でした。

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

お礼日時:2006/09/14 19:04

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!