我在递归扫描文件夹和查找文件时遇到问题。 一切正常,直到一些文件或文件夹更改。 它永远不会更新它看起来的folderlistcache。
是否有刷新或clearcache,所以它会重新扫描文件?
Thnx提前!
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);
}
}
答案 0 :(得分:1)
GetFiles在扫描时获取它找到的文件。 没有跟踪变化。
好像你需要FileSystemWatcher类,它会监视文件夹并触发一个事件,告诉你有关文件更改的信息。
有关详细信息,请参阅:http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher%28v=vs.110%29.aspx
答案 1 :(得分:0)
您可以使用GetFiles
var files = Directory.GetFiles(sDir, "*.txt", SearchOption.AllDirectories);
方法,无需递归
{{1}}
编辑:修复拼写错误,堆栈溢出需要6个以上的字符编辑。