3.エクスプローラー風にファイルの一覧を取得して ListView に表示(20_Lvw_03) (旧、SampleNo.124) |
1.エクスプローラー風にファイルの一覧を取得して ListView に表示 2. 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 Shell Controls And Automation を参照設定しておいて下さい。 その他 : : このサンプル等の内容を無断で転載、掲載、配布する事はお断りします。(私の修正・改訂・削除等が及ばなくなるので) 必要ならリンクをはるようにして下さい。(引用の場合は引用元のリンクを明記して下さい) |
1.エクスプローラー風にファイルの一覧を取得して ListView に表示 |
Public Class Form1 Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click Dim FolderName As String Dim n As Integer Dim objFile As Object = Nothing Dim i As Integer Using FolderBrowserDialog1 As New FolderBrowserDialog If FolderBrowserDialog1.ShowDialog() = Windows.Forms.DialogResult.OK Then 'フォルダー名を取得 FolderName = FolderBrowserDialog1.SelectedPath Else Exit Sub End If End Using Dim objShell As New Shell32.Shell Dim objFolder As Shell32.Folder = Nothing 'フォルダー名が取得できたら If Microsoft.VisualBasic.Strings.Len(FolderName) > 1 Then 'リストビューのアイテムをクリアする ListView1.Items.Clear() objFolder = objShell.NameSpace(FolderName) n = -1 For Each objFile In objFolder.Items n += 1 ListView1.Items.Add(objFolder.GetDetailsOf(objFile, 0), n) For i = 1 To 6 ListView1.Items(n).SubItems.Add(objFolder.GetDetailsOf(objFile, i)) Next i Next objFile End If '解放処理 Runtime.InteropServices.Marshal.FinalReleaseComObject(objFile) objFile = Nothing Runtime.InteropServices.Marshal.FinalReleaseComObject(objFolder) objFolder = Nothing Runtime.InteropServices.Marshal.FinalReleaseComObject(objShell) objShell = Nothing End Sub Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load With ListView1 .View = View.Details '項目名を設定 .Columns.Add("名前", 130, HorizontalAlignment.Left) .Columns.Add("サイズ", 100, HorizontalAlignment.Right) .Columns.Add("種類", 130, HorizontalAlignment.Left) .Columns.Add("更新日時", 150, HorizontalAlignment.Left) .Columns.Add("作成日時", 150, HorizontalAlignment.Left) .Columns.Add("アクセス日時", 150, HorizontalAlignment.Left) .Columns.Add("属性", 50, HorizontalAlignment.Left) End With End Sub End Class 図1.上記実行結果 |
2. |
3. |
4. |
5. |
6. |
検索キーワード及びサンプルコードの別名(機能名) |
リストビュー |