- 締切済み
COLD FUSION ディレクトリの容量取得について
お世話になっております。 ディレクトリの中身の容量を取得するCFCを作っているのですが、サブディレクトリの容量が取得できないのですが、なにかいいやり方はありますか? <cfdirectory directory="D:\test\test2" name="myDirectory"> <cfset sum="0"> <cfloop query="myDirectory"> <cfset sum="#sum + size#"> </cfloop> でやると、サブディレクトリは0バイトとして認識されてしまします。 普通にwindowsでフォルダのプロパティを見ると、下の階層のディレクトリやファイルの容量の合計が見れるように、簡単にCFで容量を取得できませんか????? よろしくお願い致します
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- Oh-Orange
- ベストアンサー率63% (854/1345)
★自分でサブディレクトリのファイル数を加算して計算します。 ・一般にディレクトリのサイズは 0 バイトとして返されます。 プロパティでもサブフォルダが多いと時間がかかりますが、これはサブフォルダを すべて検索してファイルサイズを加算しているからです。よって、サブディレクトリを すべて再帰的に検索して自分で計算するしか方法がありません。 ・なお、実際にディレクトリにもサイズはありますが、ディレクトリ内のファイル数により 変化しますし、ファイルを削除して数を減らしてもディレクトリのサイズは縮小しません。 ここで言っているディレクトリのサイズとプロパティで表示されるディレクトリのサイズは 意味が違います。→説明が大変なので今回は省略します。 ・CFC、CF での容量の取得方は分かりませんが、サブディレクトリを自分で検索して その中にあるファイルのサイズを1つ1つ自分で加算して求めます。こうしないと一般には 求められません。もし、サブフォルダの総バイト数を計算する処理があるのならばそれを 利用します。→まずは確認を。ない場合は再帰的に検索します。とても面倒ですが…。 ・以上。参考に!→ちなみにどんな言語?CFCって何?
お礼
やはりそうゆうやり方しかないですよねぇぇ。。。 作るとしたらかなり面倒だなぁって思って投稿してみたんですが。 ありがとうございました! ちなみにCOLD FUSIONはWEBアプリケーション言語です。 興味があれば調べてみてください