有没有一种快速的方法,可以将从提供的根目录开始,您拥有读取权限的每个文件的完全限定路径加载到string[]
中?
我看到了System.IO.Directory.GetFiles
,但是您必须在允许输入SearchOption.AllDirectories
之前提供过滤器,所以我尝试了:
string[] directoryList = Directory.GetFiles(RootPath, "*.*",
SearchOption.AllDirectories);
RootPath
是我有效的、根目录。这个方法似乎可以正常使用,但当它指向一个29GB大小的大型目录/文件结构和数十万个文件时,它会让我的Windows表单应用程序卡在那里很长时间。
因此,我考虑通过BackgroundWorker
把它放入线程中,这样我的GUI不会出现死锁,但我不确定如何为像这样一个ProgressBar
报告进度,因为它只执行一条语句并且我没有关于预处理的总文件数或已处理文件数的信息等。