2013-10-05 55 views
1

文件,我怎么能关掉这个功能,所以,与其找不好文件却忽视了他们.. 我有什么目前并没有忽视..忽略与GetFiles的

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 
+1

[我应该怎么做当有人回答我的问题?](http://stackoverflow.com/help/someone-answers) – Damith

回答

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() 
0

的问题是你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 
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