C# 检查数组中目录\文件的LastWriteTime

C# 检查数组中目录\文件的LastWriteTime,c#,arrays,string,filesystems,.net,C#,Arrays,String,Filesystems,.net,我想要两个文件的LastWriteTime,但是这些文件的路径在一个数组中 string[] array1 = Directory.GetFiles(@"path", "*.*", System.IO.SearchOption.AllDirectories); foreach (string name in array1) { Console.WriteLine(name); } 输出正常,它显示一个长列表,其中包含完整路径C:\etc\etc\etc 但我在stackoverflow

我想要两个文件的LastWriteTime,但是这些文件的路径在一个数组中

string[] array1 = Directory.GetFiles(@"path", "*.*", System.IO.SearchOption.AllDirectories);

foreach (string name in array1)
{
   Console.WriteLine(name);
}
输出正常,它显示一个长列表,其中包含完整路径C:\etc\etc\etc

但我在stackoverflow的某个地方找到了这个代码

FileInfo file = new FileInfo(@"path");

Console.WriteLine("Checking file: " + file.Name);
Console.WriteLine("File exists: " + file.Exists.ToString());

if (file.Exists)
{
   Console.WriteLine(file.CreationTime.ToString());
   Console.WriteLine(file.LastWriteTime.ToString());
   Console.WriteLine(file.LastAccessTime.ToString());
}
这一个也可以,但我想知道这两个代码是否可以组合成一个。 我已经试过了:
FileInfo file=newfileinfo(array1”);
,但很明显这是行不通的

我是一个学习型学生,所以有很多解释就好了!:)


如果有人能帮我解决这个问题,或者至少给我一些开始的东西,我将非常感激!

您可以提供从
目录.GetFiles
FileInfo
循环内部构造函数的路径,如下所示

string[] array1 = Directory.GetFiles(@"path", "*.*", System.IO.SearchOption.AllDirectories);

foreach (string name in array1)
{

    FileInfo file = new FileInfo(name);

    Console.WriteLine("Checking file: " + file.Name);
    Console.WriteLine("File exists: " + file.Exists.ToString());

    if (file.Exists)
    {
       Console.WriteLine(file.CreationTime.ToString());
       Console.WriteLine(file.LastWriteTime.ToString());
       Console.WriteLine(file.LastAccessTime.ToString());
    }

}

如果使用
DirectoryInfo.GetFiles()
而不是
Directory.GetFiles()
,则返回的是
FileInfo
数组,而不是
字符串数组,因此:

var fileInfoArray = DirectoryInfo.GetFiles(@"path");

foreach(var fInfo in fileInfoArray)
{
   Console.WriteLine(fInfo.CreationTime.ToString());
   Console.WriteLine(fInfo.LastWriteTime.ToString());
   Console.WriteLine(fInfo.LastAccessTime.ToString());
}

Damith的回答是我最初的评论所暗示的,但我会尝试解释一下发生了什么

  • 正如您所说,
    GetFiles
    返回文件的完整路径数组
  • FileInfo
    ,将文件路径作为参数

如果(File.Exists)
你甚至可能会错过
,因为你已经从一个目录返回了它们,你知道它们是存在的

我想任何答案都会泄露游戏的秘密,所以看看改变
@“路径吧“
从第一个代码段到foreach中存在的内容非常感谢!!!我整个星期都在做这个,我试过很多代码,但到现在为止都没用。但这正是我想要它做的!我终于可以睡个好觉了。再次感谢你!最后一件事;在这段代码中,是否可以将目录路径放在
Console.WriteLine(“Checking file:”+file.Name)的文件名前面