我需要从包含特定字符的目录中获取文件的名称:下面的代码将返回任何带有.csv扩展名的文件.问题是还有其他csv文件我需要单独留下或不能得到.
Dim FileLocation As DirectoryInfo = _
New DirectoryInfo("C:\Folder\Subfolder\Data\Input\")
Dim fi As FileInfo() = FileLocation.GetFiles("*.csv")
Run Code Online (Sandbox Code Playgroud)
我想获取一个包含单词data的文件,而不是获取任何csv文件,因此任何文件名都包含单词data.示例:*my_data_file.csv*
如何使用上面的代码执行此操作?
您可以使用要考虑的字符串更新过滤器(将自动处理大写):
Dim fi As FileInfo() = FileLocation.GetFiles("*data*.csv")
Run Code Online (Sandbox Code Playgroud)
无论如何,请记住这种过滤不是“太准确”。例如,上面的代码还将说明任何文件(包括“数据”),其扩展名包括 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
Run Code Online (Sandbox Code Playgroud)
此代码肯定会在您的确切要求下工作,并且可能会处理更复杂的请求。我已经占了一个List只是为了更清楚地表明这一点。
| 归档时间: |
|
| 查看次数: |
50088 次 |
| 最近记录: |