1

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

4

5 回答 5

2

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

FileInfo fi1 = new FileInfo(path);

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

于 2009-04-23T19:15:00.777 回答
1

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

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

于 2009-04-24T16:54:15.333 回答
0

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

编辑:啊,重命名不会修改 LastWriteTime。那么你自己设置 LastWriteTime

于 2009-04-23T19:14:40.437 回答
0

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

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

于 2009-04-23T19:17:34.670 回答
0

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

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

幸运的是,在这种情况下,您将通过其他方式更改文件,所以没关系。你可以检查一下,就知道你没事。

于 2009-04-23T19:17:45.000 回答