1

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

现在我只想加载word文档..

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

谁能告诉我如何在加载这些文件时过滤它们?

这就是我想要做的:

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

这是我的目录,由上述文件组成:

在此处输入图像描述

4

3 回答 3

2

您使用它的方式是检索所有文件(支付全部计算成本),然后对其进行过滤。

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

我想你可以这样做:

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

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

希望我有所帮助!

于 2013-11-15T07:56:26.400 回答
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变量以\字符结尾。如果没有,请将其添加到函数内的串联中。

于 2013-11-15T07:54:33.620 回答
0

试试这个,

   Dim files = Array.FindAll(Directory.GetFiles(mydir), Function(x) (Not Path.GetFileName(x).StartsWith(".sample")))
于 2013-11-15T08:06:46.820 回答