Vb.net 创建所有目录的列表
我试图在VisualStudio2012中创建一个给定路径中所有目录及其子目录的列表 我已经很久没有接触visual basic了。我希望有人能为这项任务展示一种简单的方法Vb.net 创建所有目录的列表,vb.net,visual-studio-2012,Vb.net,Visual Studio 2012,我试图在VisualStudio2012中创建一个给定路径中所有目录及其子目录的列表 我已经很久没有接触visual basic了。我希望有人能为这项任务展示一种简单的方法 非常感谢您的任何帮助。:) System.IO命名空间中的 Directory.GetDirectories(string, string, SearchOptions) 这是一个很好的例子 但是请记住,某些目录可能具有特定的访问权限,并且您的代码可能会因IOException而失败。(对于系统目录尤其如此) 另一种选择
非常感谢您的任何帮助。:) System.IO命名空间中的
Directory.GetDirectories(string, string, SearchOptions)
这是一个很好的例子
但是请记住,某些目录可能具有特定的访问权限,并且您的代码可能会因IOException而失败。(对于系统目录尤其如此)
另一种选择是,当您处理许多目录并且不需要填充名称的字符串数组时,最好使用
EnumerateDirectory立即启动,无需等待填充数组,在代码循环遍历枚举的情况下非常有用
For Each dirName in Directory.EnumerateDirectories("C:\", "p*", SearchOptions.AllDirectories)
..... do something with the directory here ....
Next
在System.IO命名空间中
Directory.GetDirectories(string, string, SearchOptions)
这是一个很好的例子
但是请记住,某些目录可能具有特定的访问权限,并且您的代码可能会因IOException而失败。(对于系统目录尤其如此)
另一种选择是,当您处理许多目录并且不需要填充名称的字符串数组时,最好使用
EnumerateDirectory立即启动,无需等待填充数组,在代码循环遍历枚举的情况下非常有用
For Each dirName in Directory.EnumerateDirectories("C:\", "p*", SearchOptions.AllDirectories)
..... do something with the directory here ....
Next
此递归方法将从给定路径获取所有目录及其子目录: 选项1# 选项2# 有关更多详细信息,请参阅MSDN:
此递归方法将从给定路径获取所有目录及其子目录: 选项1# 选项2# 有关更多详细信息,请参阅MSDN:
这听起来可能是个愚蠢的问题,但如何使用结果变量呢。是数组吗?@Tera,我更新了我的问题,你得到的是IEnumerable字符串,最好是使用Dim DirList中的列表作为列表(字符串的列表)……我收到以下错误。无法将类型为“System.IO.FileSystemMemerableTerator
1[System.String]”的对象强制转换为类型为“System.Collections.Generic.List
1[System.String]”。这听起来可能是个愚蠢的问题,但如何使用结果变量。是数组吗?@Tera,我更新了我的问题,你得到的是IEnumerable字符串,最好是使用Dim DirList中的列表作为列表(字符串的列表)……我收到以下错误。无法将类型为“System.IO.FileSystemMemerableTerator1[System.String]”的对象强制转换为类型为“System.Collections.Generic.List
1[System.String]”。
Public Shared Sub ProcessDirectory(ByVal targetDirectory As String)
Dim subdirectoryEntries As String() =
Directory.GetDirectories(targetDirectory)
' Recurse into subdirectories of this directory.
Dim subdirectory As String
For Each subdirectory In subdirectoryEntries
ProcessDirectory(subdirectory)
Next subdirectory
End Sub
Module Module1
Sub Main()
Try
Dim dirPath As String = "c:\\myDirctory"
Dim dirs As List(Of String) = New List(Of String)(Directory.EnumerateDirectories(dirPath))
For Each folder In dirs
Console.WriteLine("{0}", folder.Substring(folder.LastIndexOf("\") + 1))
Next
Console.WriteLine("{0} directories found.", dirs.Count)
Catch UAEx As UnauthorizedAccessException
Console.WriteLine(UAEx.Message)
Catch PathEx As PathTooLongException
Console.WriteLine(PathEx.Message)
End Try
End Sub
End Module