1

如何切换此功能,以便它忽略它们而不是查找坏文件..我目前拥有的不是忽略..

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
4

3 回答 3

3
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()
于 2013-10-05T03:58:57.910 回答
0

问题是你的Not Equal+ OR

更改ORAND,它将排除。

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
于 2013-10-05T03:58:43.970 回答
0

为什么不使用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
于 2013-10-05T04:26:33.937 回答