vb.net の 1 つのディレクトリにあるすべてのディレクトリを検索したいと考えています。
私は1つのスクリプトを見つけました:
For Each Dir As String In Directory.GetDirectories(FolderName)
ComboBox3.Items.Add(Dir)
Next
パスのフルネームを返しますが、パスの名前だけを返したいです。
最も簡単な方法は、次を使用することSystem.IO.DirectoryInfo
です。
For Each Dir As String In System.IO.Directory.GetDirectories(FolderName)
Dim dirInfo As New System.IO.DirectoryInfo(Dir)
ComboBox3.Items.Add(dirInfo.Name)
Next
(明らかに、手動で解析して最後の '\' に続くテキストを抽出することもできますが、上記の方が読みやすいと思います)
これを使用して、ディレクトリ名のみを取得します。
dirName = IO.Path.GetDirectoryName(fullPath)
ディレクトリのフルネームの先頭String.Replace
から削除するのが最も簡単な方法だと思います。FolderName
For Each Dir As String In System.IO.Directory.GetDirectories(FolderName)
ComboBox3.Items.Add(Dir.Replace(FolderName, String.Empty))
Next
これを試してみてください
For Each d As String In IO.Directory.GetDirectories(FolderName)
'IO.Path.GetFileName
'The characters after the last directory character in path.
ComboBox3.Items.Add(IO.Path.GetFileName(d))
Next
これは、ディレクトリのリストを持っているという事実と、IO.Path.GetFileName が実際に行うことを利用しています。