【发布时间】:2014-06-12 11:52:27
【问题描述】:
有没有办法在不知道目录的情况下找到文件的目录?例如,我的计算机上有 calc.exe somewhere。有没有办法找到它安装在 C:\windows\system32 上?
理想情况下,我希望能够找到安装在其他地方的其他可执行文件,我只是好奇如何搜索文件名和扩展名,返回完整路径。
顺便说一下,我希望在 .NET 中做到这一点。
【问题讨论】:
-
你会使用递归函数,不过这会有点麻烦。
有没有办法在不知道目录的情况下找到文件的目录?例如,我的计算机上有 calc.exe somewhere。有没有办法找到它安装在 C:\windows\system32 上?
理想情况下,我希望能够找到安装在其他地方的其他可执行文件,我只是好奇如何搜索文件名和扩展名,返回完整路径。
顺便说一下,我希望在 .NET 中做到这一点。
【问题讨论】:
简单地搜索所有目录是相当容易的。问题是硬盘(在较小程度上是固态磁盘)仍然是现代计算机中最慢的组件。
最好的起点是让用户指定应该搜索的目录。它既简单又有效。扫描所有 C:\ 或仅扫描 C:\Windows 的内容之间存在巨大差异。
然后,您必须决定如何扫描子目录。您要水平搜索还是垂直搜索?换句话说:当您在搜索中找到一个子目录时,您应该立即开始扫描该目录的内容,还是应该先扫描完当前目录?如果当前目录既有兄弟目录又有子目录,你想先扫描哪一个?
最后,您必须决定应该扫描多少层。如果第 10 个子目录下没有找到文件,还值得翻到第 11 个或第 12 个子目录吗?
实际代码示例:click
【讨论】: