我需要访问在%temp%
目录中随机位置创建的文件,例如在以下路径:
%temp%/[FSF480-3R3RC3-RDDWW-32FDF-3FD3E-]/files/test.txt
有人可以告诉我如何搜索,并返回“test.txt”的路径,以便我可以打开它来读取数据吗?
感谢。
答案 0 :(得分:3)
Directory.EnumerateFiles将允许您搜索与特定路径下的模式匹配的文件,可选择搜索子目录。链接的MSDN页面显示用法。
非常相似的问题here,建议将Directory.GetFiles
与递归选项一起使用。
Directory.GetFiles(Path.GetTempPath(), "test.txt", SearchOption.AllDirectories)
如果您搜索的结果很少,请使用GetFiles()
,EnumerateFiles()
如果您搜索的内容很多。
EnumerateFiles和GetFiles 方法的不同之处如下:当你 使用EnumerateFiles,你就可以开始了 枚举名称集合 在整个收藏之前 回;当你使用GetFiles时,你 必须等待整个名字 在您可以访问之前返回 数组。因此,当你是 使用许多文件和 目录,EnumerateFiles可以 效率更高。
答案 1 :(得分:0)
您可以先使用Directory.GetDirectories
通过目录树进行递归搜索,然后Directory.GetFiles
列出每个文件中的文件。
这应该允许您找到该文件。
请参阅Microsoft支持网站上的this walkthrough。
答案 2 :(得分:0)
GetCreationTime方法还可以帮助你在使用GetDirectories后确定正确的文件夹(参见Oded的帖子) - 我不知道你是否有关于目录名的任何信息,如果你这样做,它可能是很好地结合使用它们。