我需要从名称中包含特定字符的目录中获取文件:
下面的代码将返回带有以下内容的任何文件.csv
扩大。问题是还有其他 csv 文件我需要保留或得不到。
Dim FileLocation As DirectoryInfo = _
New DirectoryInfo("C:\Folder\Subfolder\Data\Input\")
Dim fi As FileInfo() = FileLocation.GetFiles("*.csv")
我不想获取任何 csv 文件,而是想要获取一个包含单词的文件data,因此任何包含单词 data 的文件名。例子:*我的数据文件.csv*
我如何使用上面的代码来做到这一点?
您可以使用您想要考虑的字符串更新过滤器(将自动处理大写字母):
Dim fi As FileInfo() = FileLocation.GetFiles("*data*.csv")
无论如何,请记住这种过滤并不是“太准确”。例如,上面的代码还将解释任何文件(包括“数据”),其扩展名includes csv
(例如,*.csva、*.csvb 等)。如果您想要 100% 可靠的方法,您最好设置一个循环并“手动”执行过滤;循环非常快,您甚至不会注意到差异。
循环示例:
Dim fi As List(Of FileInfo) = New List(Of FileInfo)
For Each File In FileLocation.GetFiles()
If (File IsNot Nothing) Then
If (Path.GetExtension(File.ToString.ToLower) = ".csv") Then
If (File.ToString.ToLower.Contains("data")) Then fi.Add(File)
End If
End If
Next
该代码肯定会根据您的具体要求工作,并且可能会处理更复杂的请求。我已经占了一个List
只是为了更清楚地表明这一点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)