从目录vb.net过滤文件

时间:2013-11-15 07:14:57

标签: vb.net file filter get directory

直截了当的问题......我的文件如扩展名为(.doc)的word文档及其各自的示例文件以(.sample)开头

现在我只想加载单词文件..

我找到了如下所示的方式加载文件,但这会加载所有文件

任何人都可以说我在加载这些文件时如何过滤这些文件?

这就是我想要做的事情:

Dim files = Array.FindAll(Directory.GetFiles(mydir), Function(x) (Not x.StartsWith(".sample")))

这是我的目录,包含如上所述的文件:

enter image description here

3 个答案:

答案 0 :(得分:2)

您使用它的方式,检索所有文件(支付整个计算成本),然后过滤它们。

this文章所述,您可以直接在文件系统的文件检索中使用搜索模式。

我想你可以这样做:

Dim files = Directory.GetFiles(mydir,".doc*")

如果你举了一个文件名的例子,也许我会给你正确的过滤器来应用。

希望我帮忙!

答案 1 :(得分:1)

GetFiles方法返回文件名,其中包含您指定的路径包含

因此,如果您的文件位于C:\working\文件夹中,则您的mydir变量将包含"C:\working\",并且GetFiles的所有结果都将类似于

"C:\working\.sample_filename.doc"
"C:\working\123797.doc"

因此,x.StartsWith始终会返回false,因为x始终以C:\

开头

试试这个:

Dim files = Array.FindAll(Directory.GetFiles(mydir), Function(x) (Not x.StartsWith(mydir & ".sample")))

请注意,这假设您的mydir变量以\字符结尾。如果没有,请将其添加到函数内的串联中。

答案 2 :(得分:0)

试试这个,

   Dim files = Array.FindAll(Directory.GetFiles(mydir), Function(x) (Not Path.GetFileName(x).StartsWith(".sample")))