【问题标题】:Efficient way to find folder directory within top 3 levels在前 3 个级别中查找文件夹目录的有效方法
【发布时间】:2015-04-10 21:34:44
【问题描述】:

简单地说,我正在寻找一种比 windows 搜索更快的方法来在目录中的指定字符串中查找文件夹。

我有一个C:\Root

我知道在前 3 个文件夹级别中,我会找到一个名为 Target 的文件夹

C:\Root\Sub1\Sub2\Target

有没有快速有效的方法来做到这一点? 我会一直在寻找一个文件夹,它总是以用户输入的一些搜索字符串开头。

最后我想制作一个表格来输入搜索字符串。这部分我应该可以自己弄清楚。

【问题讨论】:

  • 您是否尝试过一些您想分享的代码? (见How to Ask

标签: vb.net windows path filesystems


【解决方案1】:

System.IO.DirectoryInfo 和 EnumerateFiles 对象和方法在这方面非常强大。例如,您可以尝试这样的操作:

Public Sub SearchDirectory(ByVal targetDirectory As String, ByVal targetFileName As String)

    Dim di As New IO.DirectoryInfo(targetDirectory)
    For Each fi In di.EnumerateFiles(targetFileName, System.IO.SearchOption.AllDirectories)
        Console.WriteLine(fi.Name)
    Next

End Sub

您可能需要使用它才能让它以您想要的方式工作,因为可能存在与目录权限等相关的问题。不过,这应该会让您有一个良好的开端。

【讨论】:

  • 如果您坚持只允许搜索 3 个目录的想法,您应该探索使用 System.IO.DirectoryInfo.GetFiles 命令设计递归搜索函数的想法。跨度>
  • 这听起来像是我必须走的路。我快速浏览了 SearchDirectory,但只看到了 all 或 Top 级别,所以我希望除了递归之外还有更简单的方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-12
  • 2013-02-13
  • 2019-06-14
相关资源
最近更新 更多