我正在尝试生成目录及其子目录中存在的所有文件及其创建日期的列表。日期和文件名以“::”分隔
我尝试了下面的代码,但是当文件数量很大时,它需要时间。谁能建议我更好的方法/优化代码?
对于 C 盘中的某些文件,我什至通过以下方法得到“访问文件被拒绝”异常。
DirectoryInfo dir1 = new DirectoryInfo(path);
DirectoryInfo[] dir = dir1.GetDirectories();
StreamWriter write = new StreamWriter("Test.lst");
foreach (DirectoryInfo di in dir)
{
try
{
FileInfo[] file = di.GetFiles("*", SearchOption.AllDirectories);
foreach (var f in file)
{
write.WriteLine(f.FullName + "::" + f.CreationTime.ToShortDateString());
}
}
catch
{
}
}
write.Flush();
write.Close();
最佳答案
var dirinfo = new DirectoryInfo( "c:\path" );
var entries = dirinfo.GetFileSystemInfos( "*.*", SearchOption.AllDirectories )
.Select( t => string.Format( "{0}::{1}", t.FullName, t.CreationTime );
关于C# - 如何在具有创建日期的目录中生成文件名和子目录的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7515345/