[英]Filter files from directory vb.net
直截了当的问题......我有一些文件,例如带有扩展名的单词文档(.doc)
以及以(.sample)
开头的相应示例文件
现在我只想加载单词文件..
我发现如下所示的方式加载文件,但这会加载所有文件
任何人都可以说我如何在加载这些文件时过滤这些文件?
这就是我想要做的:
Dim files = Array.FindAll(Directory.GetFiles(mydir), Function(x) (Not x.StartsWith(".sample")))
这是我的目录包含如上所述的文件:
您使用它的方式,检索所有文件(支付整个计算成本),然后过滤它们。
正如指出这个文章,你可以直接在文件检索从文件系统中使用的搜索模式。
我想你可以这样做:
Dim files = Directory.GetFiles(mydir,".doc*")
如果你举了一个文件名的例子,也许我会给你正确的过滤器来应用。
希望我帮忙!
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
变量以\\
字符结尾。 如果没有,请将其添加到函数内的串联中。
尝试这个,
Dim files = Array.FindAll(Directory.GetFiles(mydir), Function(x) (Not Path.GetFileName(x).StartsWith(".sample")))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.