直截了当的问题......我的文件如扩展名为(.doc)
的word文档及其各自的示例文件以(.sample)
开头
现在我只想加载单词文件..
我找到了如下所示的方式加载文件,但这会加载所有文件
任何人都可以说我在加载这些文件时如何过滤这些文件?
这就是我想要做的事情:
Dim files = Array.FindAll(Directory.GetFiles(mydir), Function(x) (Not x.StartsWith(".sample")))
这是我的目录,包含如上所述的文件:
答案 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")))