排除某些目录名称
Exclude certain directory names
如何在从目录中获取某些目录名称时排除它们?
我目前有:
Dim dir1 As DirectoryInfo() = dir2.GetDirectories()
我尝试了以下示例的变体:
Dim dir1 As DirectoryInfo() = dir2.GetDirectories().Where(Name = Name.Contains("00000000.001"))
尝试从进程中排除两个文件名,我将 运行 处理其余文件。任何建议都会很棒。谢谢!
编辑:
Tim 使用此代码提供的测试答案:
Dim direct1 As DirectoryInfo
For Each direct1 In dir1
ListBox2.Items.Add(direct1.Name)
Next
它显示了我目前试图避免的两个文件名。
您可以使用 LINQ,因此我更喜欢 DirectoryInfo.EnumerateDirectories
。
来自 MSDN:
The EnumerateDirectories
and GetDirectories
methods differ as
follows: When you use EnumerateDirectories
, you can start
enumerating the collection of DirectoryInfo
objects before the whole
collection is returned. When you use GetDirectories
, you must wait
for the whole array of DirectoryInfo
objects to be returned before
you can access the array.
例如:
Dim dirs As DirectoryInfo() = dir2.EnumerateDirectories().
Where(Function(dir) dir.Name.Contains("00000000.001")).
ToArray()
如果您想排除它们,请使用 Not ...
:
Dim dirs As DirectoryInfo() = dir2.EnumerateDirectories().
Where(Function(dir) Not dir.Name.Contains("00000000.001")).
ToArray()
如果要排除多次使用:
Dim exclude = { "00000000.001", "00000000.002" }
Dim dirs As DirectoryInfo() = dir2.EnumerateDirectories().
Where(Function(dir) Not exclude.Any(Function(d) dir.Name.Contains(d))).
ToArray()
如何在从目录中获取某些目录名称时排除它们? 我目前有:
Dim dir1 As DirectoryInfo() = dir2.GetDirectories()
我尝试了以下示例的变体:
Dim dir1 As DirectoryInfo() = dir2.GetDirectories().Where(Name = Name.Contains("00000000.001"))
尝试从进程中排除两个文件名,我将 运行 处理其余文件。任何建议都会很棒。谢谢!
编辑: Tim 使用此代码提供的测试答案:
Dim direct1 As DirectoryInfo
For Each direct1 In dir1
ListBox2.Items.Add(direct1.Name)
Next
它显示了我目前试图避免的两个文件名。
您可以使用 LINQ,因此我更喜欢 DirectoryInfo.EnumerateDirectories
。
来自 MSDN:
The
EnumerateDirectories
andGetDirectories
methods differ as follows: When you useEnumerateDirectories
, you can start enumerating the collection ofDirectoryInfo
objects before the whole collection is returned. When you useGetDirectories
, you must wait for the whole array ofDirectoryInfo
objects to be returned before you can access the array.
例如:
Dim dirs As DirectoryInfo() = dir2.EnumerateDirectories().
Where(Function(dir) dir.Name.Contains("00000000.001")).
ToArray()
如果您想排除它们,请使用 Not ...
:
Dim dirs As DirectoryInfo() = dir2.EnumerateDirectories().
Where(Function(dir) Not dir.Name.Contains("00000000.001")).
ToArray()
如果要排除多次使用:
Dim exclude = { "00000000.001", "00000000.002" }
Dim dirs As DirectoryInfo() = dir2.EnumerateDirectories().
Where(Function(dir) Not exclude.Any(Function(d) dir.Name.Contains(d))).
ToArray()