【发布时间】:2014-09-25 17:38:47
【问题描述】:
我在递归扫描文件夹和查找文件时遇到问题。 一切正常,直到某些文件或文件夹发生更改。 它似乎永远不会更新文件夹列表缓存。
是否有刷新或清除缓存,所以它会重新扫描文件?
提前谢谢!
ArrayList list = new ArrayList();
void dirsearch(string sDir)
{
try
{
foreach (string d in Directory.GetFiles(sDir))
{
foreach (string f in Directory.GetFiles(d, "*.txt"))
{
string foldername = new DirectoryInfo(d).Name;
String filename = Path.GetFileName("c:\\" + f);
list.Add("C:\\" + f);
list.Add(foldername);
list.Add(filename);
MessageBox.Show("found one!");
}
dirsearch(d);
}
}
catch (System.Exception excpt)
{
MessageBox.Show(excpt.Message);
}
}
【问题讨论】:
-
我很怀疑这段代码能否正常工作。
-
Matthias 的回答非常棒。所有 GetFiles 都是 Directory 类中的一个方法。你调用它一次,然后它就完成了。如果您注意到 GetFiles 的返回类型是一个字符串数组,您就会明白这一点。
标签: c# caching directory refresh getfiles