【发布时间】:2016-05-27 08:45:39
【问题描述】:
如果有一个目录,其中包含在不同日期创建的文件。我想知道日期。
是否可以使用 linq 查询来执行此操作,或者我必须先读取所有文件并使用 foreach 循环来获取日期。
例子:
列表 =
File_1 6/03/2016
File_2 6/03/2016
File_3 6/03/2016
File_4 6/03/2016
File_5 15/04/2016
File_6 21/04/2016
File_7 21/04/2016
File_8 21/04/2016
结果 =
6/03/2016
15/04/2016
21/04/2016
谢谢
【问题讨论】:
-
不清楚日期是在文件中,还是只是文件系统条目。你有没有尝试过?
-
你需要获取文件属性,我在副本中展示了如何做到这一点:
DateTime CreatedDate = Convert.ToDateTime(GetSpecificFileProperties(filePath, 4));另一种方法是使用FileInfo.GetCreationTime 和另一种方法是 DOS 命令dir。 -
在该重复问题的任何答案中都没有 linq 查询,而且答案使用的 shell 对于 OP 的问题来说是完全矫枉过正(而且是不必要的)。
-
@KrisMatele 我现在无法正确回答这个问题,因为它已关闭,但是如果您想使用 Linq 获取所有最后修改时间的列表,您只需要:
var dateInfo = Directory.EnumerateFiles(directoryName).Select(filename => new FileInfo(filename)).Select(info => new {info.Name, info.LastWriteTime});。这将为您提供可以使用foreach的东西 - 列表中的每个项目都有一个Name和一个LastWriteTime属性。 -
@MatthewWatson 我重新打开了,他希望创建日期不是最后一次写入