-1

如果提供的路径中存在文件,我想检查我的 weapplication。文件名可以是任何内容,例如:pic.jpg、pic.txt、pic1.txt、pic2.jpg 等。我需要检查路径中是否存在“pic”名称。仅检查“pic”是否存在或 pic+anything+。 jpg 或 pic.anything.txt 使用 vb.net 存在。

请帮忙。

4

3 回答 3

2

您需要检查File.Exists方法。不要忘记,这仅适用于在服务器上查找文件,而不是客户端。在客户端查找文件是完全不同的数学。

于 2013-05-28T19:21:53.637 回答
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 framework >=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
于 2013-05-28T20:42:34.170 回答
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

在第二个参数中,您可以按照用于目录列表的常用通配符规则传递任何类型的模式

于 2013-05-28T19:31:35.180 回答