为了拒绝删除文件夹,哪个目录包含某个单词,我想检查一个字符串(directory.fullname.tostring)是否包含存储在字符串数组中的任何元素。 字符串数组包含说明异常字的字符串。
这是我走了多远,我知道解决方案是另一种方式,而不是这里所说的:
If Not stackarray.Contains(dir.FullName.ToString) Then
Try
dir.Delete()
sw.WriteLine("deleting directory " + dir.FullName, True)
deldir = deldir + 1
Catch e As Exception
'write to log
sw.WriteLine("cannot delete directory " + dir.ToString + "because there are still files in there", True)
numbererror = numbererror + 1
End Try
Else
sw.WriteLine("cannot delete directory " + dir.ToString + "because it is one of the exception directories", True)
End If
答案 0 :(得分:0)
不是检查数组是否包含完整路径,而是反过来。遍历数组中的所有项,并检查路径是否包含每个项,例如:
Dim isException As Boolean = False
For Each i As String In stackarray
If dir.FullName.ToString().IndexOf(i) <> -1 Then
isException = True
Exit For
End If
Next
If isException Then
' ...
End If
或者,如果你想更加花哨,你可以使用Array.Exists方法用更少的代码行来完成它,如下所示:
If Array.Exists(stackarray, Function(x) dir.FullName.ToString().IndexOf(x) <> -1) Then
' ...
End If
答案 1 :(得分:0)