如果文件存在于提供的路径中,我想检查我的应用程序。文件名可以是任何例如:pic.jpg,pic.txt,pic1.txt,pic2.jpg等。 我需要检查路径中是否存在“pic”名称。只检查'pic'是否存在或pic +任何内容+ .jpg或pic.anything.txt存在于vb.net。
请帮忙。
答案 0 :(得分:2)
您需要查看File.Exists方法。别忘了,这只适用于在服务器上查找文件,而不是客户端。在客户端查找文件完全不同。
答案 1 :(得分:2)
您可以获取给定目录中的文件列表,然后检查文件名以查看您要查找的文本片段是否在其中任何一个中。假设您希望在测试中包含扩展名,并且您不关心它是大写还是小写:
Function FilenameFragmentExists(srcDir As String, fragment As String) As Boolean
Dim files() As String = IO.Directory.GetFiles(srcDir)
Dim found As Boolean = False
For i = 0 To files.Length - 1
If IO.Path.GetFileName(files(i)).IndexOf(fragment, StringComparison.OrdinalIgnoreCase) > -1 Then
found = True
Exit For
End If
Next
Return found
End Function
或者您可以使用LINQ在一行中执行此操作,如果您使用.NET框架> = 4,则可以使用.EnumerateFiles
代替.GetFiles
,这可能更快:
Function FilenameFragmentExists(srcDir As String, fragment As String) As Boolean
Return IO.Directory.EnumerateFiles(srcDir).Any(Function(f) IO.Path.GetFileName(f).IndexOf(fragment, StringComparison.OrdinalIgnoreCase) >= 0)
End Function
答案 2 :(得分:1)
您应该使用Directory.GetFiles(path, pattern)检查它是否返回与您的模式对应的某些文件。例如
Dim files = Directory.GetFiles("C:\temp", "*.jpg")
if files.Length > 0 Then
Console.WriteLine("Directory contains " + files.Length + " with the required pattern")
Else
Console.WriteLine("Directory doesn't contain any file with the required pattern")
End if
在第二个参数中,您可以按照用于目录列表的通常通配符规则传递任何类型的模式