我写了一个Windows服务,将大型未压缩图像与较小的缩略图进行比较,以确定哪些图像需要新的缩略图或根本没有缩略图...我正在使用文件的创建日期来确定哪些文件需要更新(如果未压缩图像的创建日期大于缩略图,则缩略图已过时)。
一切正常,我唯一的问题是当我将缩略图的新版本保存在现有缩略图上时...最初,我只是做一个简单的Bitmap.Save
,但是当覆盖它时,只会更改修改日期文件。我在保存新版本之前添加了File.Delete()
,它删除了旧版本,保存了一个新版本(应如此),但是新文件的创建日期仍然是旧创建日期... < / p>
我删除了每个旧的缩略图,等待了几分钟,然后再次运行创建代码,重新创建了新的创建日期... Windows是否有一些时间范围将文件数据存储在内存中,也许它可以识别相同的文件名并提供新的归档旧的“创建日期”?
答案 0 :(得分:1)
根据File.SetCreationTime(String, DateTime) Method的文档,
NTFS格式的驱动器可能会在短时间内缓存文件元信息,例如文件创建时间。因此,如果您要覆盖或替换现有文件,则可能有必要明确设置文件的创建时间。
但是,如果要谨慎,请重命名原始文件,例如在末尾加上“ .old”。这样,就必须为新文件创建一个新的目录条目。然后,如果出现严重错误,仍然有它的.old副本(直到您删除它)。