昔からオペレーションや手順を覚えるのが苦手で
メモ鉄などを使っていたが、開発も止まってエクスプローラーを使っていたけどオペレーション覚えない他人に聞かれること多数。
結局いない間にPCいじられて「手が滑った」らしく該当の手順を探す作業が発生。
メモ鉄のようなエディタではなくてオペレーションに特化したビューアを作ってみたくなりました。
C#で似たようなことをしている人が多いのですが、VBで気軽にやってみたいと思いググるとだいぶ過去に似たような質問をしているスレッドがあり、サンプルが載っていたので自分なりに作っていきたいと思います。
Form1とTreeView1をForm1デザインで張り付け、
下記のサンプルプログラムを解釈しながら改変しました。
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
'作成されたexeのフォルダを指定(アクセス権がないディレクトリを指定するとエラーになる)
Dim s As String = ".\"
trViewSet(s, TreeView1.Nodes.Add(s))
End Sub
'treeView表示項目セット
Private Sub trViewSet(ByVal path As String, ByVal node As TreeNode)
'DirectoryInfoはSystem.IOの部品であるためInport System.IOを付けるとよいが学習のためにいちいち書く
Dim folder As System.IO.DirectoryInfo = New System.IO.DirectoryInfo(path)
Dim subfolders() As System.IO.DirectoryInfo = folder.GetDirectories()
Dim subfolder As System.IO.DirectoryInfo
'サブフォルダやフォルダは以下のファイルをTreeViewに追加
For Each subfolder In subfolders
Dim subnode As TreeNode = node.Nodes.Add(subfolder.Name)
trViewSet(subfolder.FullName, subnode)
Next
Dim files() As System.IO.FileInfo = folder.GetFiles()
Dim file As System.IO.FileInfo
For Each file In files
node.Nodes.Add(file.Name)
Next
End Sub
'TreeViewのノードをクリックするとメッセージボックスが表示される
Private Sub TreeView1_AfterSelect(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeView1.AfterSelect
MsgBox(e.Node.FullPath)
End Sub
End Class
ファイル名別にアイコンを変えたりファイル名順にソートしたりやることはいろいろあるけど今日はここまでにします。