C# - 如何在具有创建日期的目录中生成文件名和子目录的列表

标签 c# file directory

我正在尝试生成目录及其子目录中存在的所有文件及其创建日期的列表。日期和文件名以“::”分隔

我尝试了下面的代码,但是当文件数量很大时,它需要时间。谁能建议我更好的方法/优化代码?

对于 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/

相关文章:

c# - 无法创建 Aux 文件夹

c# - 如何检查Word文件是否包含文本C#

c# - OpenXML Spreadsheet : Excel gives an error, 然后修复它并且它可以工作。 (C#)

Java:将配置变量存储在文件中

PHP(文件夹)文件按字母顺序列出?

C 创建用户指定的文件和文件夹

c# - 通过 .NET 访问 MPEG 传输数据包

file - 为什么多个小文件的数据传输速度比大文件慢?

php - 在php中获取文件的大小

c - C语言创建文件夹的方法