【问题标题】:Trying to accomplish similar functionality of .contains on an array of string using substring尝试使用子字符串在字符串数组上完成类似的 .contains 功能
【发布时间】:2013-05-09 02:41:47
【问题描述】:

我有一个目录路径数组:

Directory.GetFiles(uploadPath)

我想检查这个数组以查看文件是否存在于其中一个文件路径中。在查看了一些关于 SO 的类似问题后,我想出了以下内容。这将起作用,除非它不匹配,因为文件名是数组中路径的子字符串。我试图避免循环。

If Array.IndexOf(Directory.GetFiles(uploadPath), fileName) > -1 Then
    'do some cool coding stuff
    Exit Sub
End If

我的另一个想法是 GetFiles 方法有一个 searchPattern 作为字符串参数,我猜我可以在那里放一个正则表达式来返回最后一个 '\' 之后的值。

所以现在我有了这个完美的工作:

 If Directory.GetFiles(uploadPath, fileName).Length > 0 Then
     'do some code stuff
      Exit Sub
  End If

【问题讨论】:

    标签: regex arrays vb.net string-comparison


    【解决方案1】:

    除了这些,你有没有试过内置的:

    System.IO.Path.GetFileName()
    

    那应该马上给你文件名。

    希望这会有所帮助。

    【讨论】:

    • 如果使用该方法,我仍然需要遍历数组中的每个路径以获取文件名以进行比较。 directory.getfiles 从我提供的目录路径中获取所有文件路径。所以,如果我有 50 个文件,它会返回一个包含 50 个路径字符串的数组。
    【解决方案2】:

    GetFiles 的 searchPattern 参数不采用正则表达式,它只匹配文件名,因此您不需要做任何真正花哨的事情。只需调用 GetFiles 传递目录名作为第一个参数进行搜索,将要查找的文件名作为第二个参数。

    【讨论】:

    • 啊,好吧,从那以后。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-30
    • 2015-12-04
    • 1970-01-01
    相关资源
    最近更新 更多