如何确定C#上最后一次更改文件名的时间?

时间:2009-04-23 19:08:26

标签: c# filenames

我有一个小实用程序,它对文件进行一些处理,并在文件扩展完成时将文件扩展名更改为.processed。我还想在“x”天后删除这些旧的.processed文件。是否有文件属性可以告诉您上次更改文件名的时间?我意识到我可以在处理之后在文件的末尾添加空格,重新保存它,然后获取“LastWriteTime”属性,但我根本不想触摸原始文件。有什么想法吗?

5 个答案:

答案 0 :(得分:2)

System.IO.FileInfo命名空间中的LastWriteTime。

FileInfo fi1 = new FileInfo(path);

哦,是的,你也可以写下这个值。更新文件名时更新它。

答案 1 :(得分:1)

更新LastWriteTime解决方案的另一个想法是不能满足您的需求:

将文件名(或重命名的文件名)和文件处理日期存储在数据库中。

答案 2 :(得分:0)

我不明白...... LastWritetime应该是文件最后写入的时间。因此,如果您的处理修改了x.processed文件,您可以查看它。您最后一次阅读时也可以使用GetLastAccessTime

编辑:啊,重命名不会修改LastWriteTime。那么set LastWriteTime yourself

答案 3 :(得分:0)

我认为重命名文件不会更新LastWriteTime。

因此,当您的进程重命名文件时,同时更新FileInfo对象中的LastWriteTime,然后您可以使用LastWriteTime进行比较。

答案 4 :(得分:0)

即使Windows在重命名文件时确实更新了LastWriteTime,也不够好:

当您第一次更改文件名时,您可以检查新文件名上的LastWriteTime日期,但是一旦您以任何方式编辑文件,信息就会丢失。

幸运的是,在这种情况下,您将以其他方式更改文件,因此无关紧要。你可以检查它,知道你没事。