7.指定フォルダー以下のサブフォルダー内含めた総ファイルサイズを取得する(32_Fil_07) (旧、SampleNo.026) |
1.指定フォルダー以下のサブフォルダー内含めた総ファイルサイズを取得する 2.FileSystemObject オブジェクト を使って同様に取得 3. 4. 5. 6. |
下記プログラムコードに関する補足・注意事項 動作確認:Windows 8.1 (Windows 7) / VB2013 (VB2010) / Framework 4.5.1 / 対象の CPU:x86 Option :[Compare Text] [Explicit On] [Infer On] [Strict On] Imports :追加なし 参照設定:プロジェクト → 参照の追加 → COM で Microsoft Scripting Runtime を参照設定しておいて下さい。 その他 : : このサンプル等の内容を無断で転載、掲載、配布する事はお断りします。(私の修正・改訂・削除等が及ばなくなるので) 必要ならリンクをはるようにして下さい。(引用の場合は引用元のリンクを明記して下さい) |
1.指定フォルダー以下のサブフォルダー内含めた総ファイルサイズを取得する |
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click '指定フォルダー以下(サブフォルダー内含む)の全ファイルサイズを取得する Dim di As System.IO.DirectoryInfo = New System.IO.DirectoryInfo("../../") 'ファイルサイズを取得 Dim sumFile As Long = GetDirFileSize(di) MessageBox.Show(sumFile.ToString("#,###") & " バイトです。") '結果は、エクスプローラーで表示される値と同じです。 End Sub Public Shared Function GetDirFileSize(ByVal d As System.IO.DirectoryInfo) As Long '指定フォルダー以下のファイルサイズを取得する関数 'エクスプローラーのフォルダーのプロパティの全般のところで表示しているファイルサイズと同じ Dim fSize As Long = 0 Dim fis As System.IO.FileInfo() = d.GetFiles() Dim fi As System.IO.FileInfo 'フォルダー内のファイルサイズを取得 For Each fi In fis fSize += fi.Length Next fi Dim dis As System.IO.DirectoryInfo() = d.GetDirectories() Dim di As System.IO.DirectoryInfo 'サブフォルダー内のファイルサイズを合計する For Each di In dis fSize += GetDirFileSize(di) Next di Return fSize End Function |
2.FileSystemObject オブジェクト を使って同様に取得 |
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click '指定フォルダー以下(サブフォルダー内含む)の全ファイルサイズを取得する 'FileSystemObject オブジェクト の 'Folder オブジェクト の Size プロパティ で取得 Dim Fso As New Scripting.FileSystemObject Dim fd As Scripting.Folder = Fso.GetFolder("../../") MessageBox.Show(CInt(fd.Size).ToString("#,###") & " バイトです。") '結果は、エクスプローラーで表示される値と同じです。 'COMオブジェクトの解放 System.Runtime.InteropServices.Marshal.ReleaseComObject(fd) System.Runtime.InteropServices.Marshal.ReleaseComObject(Fso) End Sub |
3. |
4. |
5. |
6. |
検索キーワード及びサンプルコードの別名(機能名) |