如何切换此功能,以便它忽略它们而不是查找坏文件..我目前拥有的不是忽略..
Dim files As System.IO.FileInfo() = directory.GetFiles.Where(Function(fi) fi.Extension.ToLower <> ".bad1" Or fi.Extension.ToLower <> ".bad2" Or fi.Extension.ToLower <> ".bad3").ToArray
Dim files As System.IO.FileInfo() = directory.GetFiles().Where(Function(fi) Not (fi.Extension.ToLower() = ".bad1" OrElse fi.Extension.ToLower() = ".bad2" OrElse fi.Extension.ToLower() = ".bad3")).ToArray()
问题是你的Not Equal
+ OR
。
更改OR
为AND
,它将排除。
Dim files As System.IO.FileInfo() = directory.GetFiles.Where(Function(fi) fi.Extension.ToLower <> ".bad1" AND fi.Extension.ToLower <> ".bad2" AND fi.Extension.ToLower <> ".bad3").ToArray
为什么不使用AND
,而不是OR
因为您试图忽略所有坏文件,例如:
Dim files As System.IO.FileInfo() = directory.GetFiles().Where(Function(fi) fi.Extension.ToLower <> ".bad1" And fi.Extension.ToLower <> ".bad2" And fi.Extension.ToLower <> ".bad3").ToArray
顺便说一下fi
,这个上下文的参数没有Extension
属性,所以为什么不在
命名空间Path.GetExtension()
下使用System.IO
,比如:
Dim files As System.IO.FileInfo() = directory.GetFiles().Where(Function(fi) Path.GetExtension(fi) <> ".bad1" And Path.GetExtension(fi) <> ".bad2" And Path.GetExtension(fi) <> ".bad3").ToArray