• ベストアンサー

フォルダ容量取得について

こんにちは。質問させて下さい。 同じサーバ内にあるフォルダの容量を取得したいと考えております。フォルダサイズを取得する関数はあるのでしょうか?調べたのですが見当たりませんでした。 もしロジックで行う場合、 その指定のフォルダ内に含まれているファイル一覧を取得して各ファイルサイズを合算することで対応するしかないでしょうか? ちなみにフォルダ内にはフォルダは存在しないものとします。どなたかご存知の方いらっしゃいましたらご教示お願い致します。

  • 653
  • お礼率36% (138/382)
  • PHP
  • 回答数1
  • ありがとう数0

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

  • ベストアンサー
回答No.1

> もしロジックで行う場合、 その指定のフォルダ内に含まれているファイル一覧を取得して各ファイルサイズを合算することで対応するしかないでしょうか? 可能でしょうが、多段階層のフォルダだったりするとクラッときます(笑。 まぁそれは無いと言う事でしたら、ディレクトリ関数でファイル名を取得して、ファイルサイズを合算すれば何とかなるでしょうけど。検証してませんが、 $dirname = "yourdir/path/"; $d = dir($dirname); while (false !== ($entry = $d->read())) { echo "\n<br />"; echo $dirname.$entry; if(! ( $entry == "." || $entry == ".." ) { echo " ". filesize($dirname.$entry); $size += filesize($dirname.$entry); } } $d->close(); echo "\n<br />合計 {$size} byte"; ?> ただし、これでは実際にHDDのブロックをどのくらい占有しているかは分かりません。Linuxならシステムコマンド du を使えば簡単に求められます。これは下位階層があっても使えるという大きなメリットがあります。 <?php $a = exec("du -s -b udon/data/"); if(ereg("([0-9]+)",$a,$reg)){ print_r($reg); echo "合計 {$reg[1]} byte 占有"; } ?> ご参考まで。

参考URL:
http://taketan.mydns.jp/?PHP

関連するQ&A

  • サーバ内のフォルダ名と各フォルダのサイズを取得

    VBS初心者ですが、上司に依頼されて、次の目的のVBSを 作成することとなりましたので、皆様の知恵をお貸し下さい。 1、業務サーバー内に50前後のフォルダが存在する。 2、そのサーバ内のフォルダ名とサイズ(MB表示)を取得する。 3、最終的には、取得したフォルダ名とサイズをcsvで出力する。 現在は、月一でサーバー内の各フォルダのプロパティからサイズを取得して、 エクセルで管理をしているのですが、毎月のようにフォルダが10個単位で増減しているため、 作業に取られる時間が馬鹿にならないので、VBSにて一覧取得をできないか と相談されました。 私のスキルでは、各フォルダ毎のファイル名とサイズを取得することは 出来るのですが、出来れば、一度の操作で全部の作業を終わらせたいので、 皆様のお力をお貸し下さい。

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

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

  • 【VBA】 フォルダの全ファイルを取得したい

    あるフォルダ内のCSVファイル全てを取得してひとつのファイルにまとめようと思っています。 下記の条件が必要なのですが、どのように記述したらよいでしょうか? ・プログラム内にフォルダのファイルパスを  記述せずにユーザにフォルダを指定させたい。  (テキストボックスはエラーが起こりやすいので避けたい) ・フォルダ内のファイルをひとつずつ開いて特定のシートに合算させたい  (合算処理はわかるのですが、そのほかがわかりません・・・) お手数ですが、どなたかわかる方がいたら 教えてください

  • インターネットキャッシュフォルダについて教えて

    IEのインターネットキャッシュフォルダの 「C:\Temporary Internet Files」のようなものなのですが、 普通のフォルダとは性質が違うようで、ファイルの扱い方に困っています。 上記のパスをエクスプローラーで開くと、アクセスしたサイトの オブジェクトが一覧として現れるのですが、 上記のフォルダを指定してDir関数でファイルを表示しようとすると ファイル名が表示されません。 またエクスプローラでそのフォルダにはサブフォルダは表示されないのですが、 「C:\Temporary Internet Files\Content.IE5」と指定してDir関数で 一覧を表示させると、サブフォルダやファイルが見つかります。 「C:\Temporary Internet Files」をエクスプローラで表示した時に現れる一覧をVB.NETのプログラム上で取得して、 エクスプローラーで表示されているような、インターネットアドレス、サイズ、最終アクセス日などを取得したいのですが、 どのような方法でやれば良いでしょうか? 特殊なフォルダのようでどうしたら良いか全く分からない状態です。 検索をしてみたのですが、キャッシュを削除するというのはいくつか 見つかったのですが、それ以外では参考になりそうなものを見つけることができませんでした。 申し訳ございませんが、ご教示頂きたくお願いいたします。

  • FTPサーバーから受信したファイル一覧からファイル名だけを取得したいです

    こんばんは。いつもお世話になっております。 VB.NET+WinXPなのですが、 FTPサーバーにログインして、 LISTコマンドでファイル一覧を要求すると 「drwxrwxr-x 2 53 53 4096 Feb 28 2006 abc」 などというファイルやフォルダの一覧がかえって来ると思うのですが、 この中からファイル名やフォルダ名だけを取得するには どうしたらよいでしょうか。 TABやコンマが入っていないので、文字列関数で切り取るにも 区切りがわからないと思うのです。 ローカルドライブのDir関数なら、FileAttribute.Nomalや.Directoryの指定でファイル名だけや ディレクトリー名だけを指定して 取得することが出来るのですが、FTPサーバーの場合からの場合はどういった方法があるでしょうか。 参考程度でも構いませんので教えて頂けるとたすかります。m(__)m

  • フォルダ下のファイル内容の取得

    こんにちは。 指定したフォルダに入っているファイルやフォルダの情報を取得するには どんな関数を使えばいいのでしょうか? OSはwindows(98) 開発環境はvisual stdio C++です。 どうかよろしくお願いします。

  • フォルダの容量

    急遽、会社でパソコンの管理を任されました。 できれば会社でパソコンの管理をしている人の回答が聞きたいです。 ファイルサーバーの空き容量が少なくなってしまったので、 各フォルダの容量を調査することになりましたが、 わざわざ各フォルダのプロパティを開かないと分からないですよね? もっと簡単に調べられる方法はないでしょうか? ちなみにサーバーはWindows NT Serverで、自分が使っているのはWindows NTです。 サーバー内のファイル管理はほとんど自分の端末で操作しています。 その他の接続している端末は98、2000、XPです。

  • フォルダ内にあるファイル名を取得したい

    cを利用して、指定したフォルダの中にある全てのファイルの名前を取得するプログラムを作りたいのですが、適した関数がわかりません。 指定するフォルダはあらかじめ決めうちで、その中には.txtのファイルのみを格納します。 どなたか教えてください。できれば自分で作りたいのでヒントをください。お願いします。 VisualC++.netを使っています。OSはXPです。

  • 空のフォルダの容量について

    フォルダ内のファイルを全て削除しても、フォルダのプロパティのサイズを見ると稀に容量がある時があります。(隠しファイルや隠しフォルダはありません) これは一体何故なのでしょうか?

  • 共有フォルダ内のディスク容量を調べたい

    共有フォルダ内のディスク容量を調べたいのですが、 ローカルのものはインストールしたソフトで調べられたのですが、 共有フォルダが指定できなかったので、 共有フォルダ内の各フォルダ(その中のフォルダも)も 容量が一覧で確認できるツールを探しています。 お勧めのものがありましたら教えてください。 よろしくお願いします!

専門家に質問してみよう