我有一个小实用程序,它对文件进行一些处理,并在文件扩展完成时将文件扩展名更改为.processed。我还想在“x”天后删除这些旧的.processed文件。是否有文件属性可以告诉您上次更改文件名的时间?我意识到我可以在处理之后在文件的末尾添加空格,重新保存它,然后获取“LastWriteTime”属性,但我根本不想触摸原始文件。有什么想法吗?
答案 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日期,但是一旦您以任何方式编辑文件,信息就会丢失。
幸运的是,在这种情况下,您将以其他方式更改文件,因此无关紧要。你可以检查它,知道你没事。