C# 检查数组中目录\文件的LastWriteTime
我想要两个文件的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
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)的文件名前面代码>?