フォルダサイズを取得したい?

解決


YUU3  2004-07-29 16:46:09  No: 115170  IP: [192.*.*.*]

あるフォルダの総容量(サイズ)を知りたいのですが、
FileSystemObjectを使うしかないでしょうか?

一応こんな感じでやってみたのですが、
    Set myFSO = CreateObject("Scripting.FileSystemObject")
    Set myFolder = myFSO.GetFolder(strPath)
    MsgBox myFolderPath & " フォルダ内のファイル数は " & myFolder.Files.Count & " です。", vbInformation, "Information"
    MsgBox myFolderPath & " フォルダのサイズは " & Format$(myFolder.SubFolders.Count, "#,###") & "バイトです。"


プログラム実行時に、Nortonのスクリプト実行のウィンドウが出てきますし、
ネットワーク上のフォルダサイズは、うまく取得できませんでした。
ファイル検索して、フォルダ容量を求めるしかないのでしょうか?

VB6.0
Win2000

編集 削除
YUU3  2004-07-29 17:29:27  No: 115171  IP: [192.*.*.*]

記述ミスです。
>Set myFolder = myFSO.GetFolder(strPath)
Set myFolder = myFSO.GetFolder(myFolderPath)

編集 削除
DAN  2004-07-29 18:16:07  No: 115172  IP: [192.*.*.*]

フォルダのサイズでしたら、
myFolder.Sizeじゃないでしょうか?

編集 削除
YUU3  2004-07-30 08:23:13  No: 115173  IP: [192.*.*.*]

>フォルダのサイズでしたら、
>myFolder.Sizeじゃないでしょうか?

その通りです。

編集 削除
DAN  2004-07-30 09:48:23  No: 115174  IP: [192.*.*.*]

>その通りです
ってYUU3の書いた上記コードではフォルダの
サイズは出ませよね?
なのでmyFolder.Sizeでもダメですか?って意味
で書いたんですが・・・(^^;)ゞ
そういう事じゃなくて別の方法って事ですか?
であれば、FindFirstFile、FindNextFile等のAPI関数でも
調べられますよ。
使い方についてはネットで検索かければわかると思います。

編集 削除
YUU3  2004-07-30 11:18:17  No: 115175  IP: [192.*.*.*]

こんな風ですか?
 Set myFSO = CreateObject("Scripting.FileSystemObject")
 Set myFolder = myFSO.GetFolder(myFolderPath)
     MsgBox myFolderPath & " フォルダのサイズは " & Format$(myFolder.Size, "#,###") & "バイトです。"

>そういう事じゃなくて別の方法って事ですか?
説明がうまくできなくて申し訳ありません。そういうことです。

>であれば、FindFirstFile、FindNextFile等のAPI関数でも
調べられますよ。

やはり、それしかないのですね。
検索して合計を出すプログラムを作って見ます。
ありがとうございました。

編集 削除