【发布时间】:2019-05-21 12:52:11
【问题描述】:
我编写了一个 Windows 服务,它将未压缩的大图像与其小得多的缩略图进行比较,以确定哪些图像需要新的缩略图或根本没有缩略图...我正在使用文件的创建日期来确定哪些图像需要更新(如果未压缩图像的创建日期大于缩略图,则缩略图已过期)。
一切都很好,我唯一的问题是当我将新版本的缩略图保存在现有的缩略图上时......起初我只是做一个简单的Bitmap.Save,但是当覆盖它只会改变修改日期文件。我在保存新版本之前添加了File.Delete(),它删除了旧版本,保存了一个新版本(应该如此),但新文件的创建日期仍然是旧的创建日期......
我删除了每个旧缩略图,等待了几分钟,然后再次运行创建代码,全新的创建日期...是否有一些时间框架 Windows 将文件数据存储在内存中,也许它会识别相同的文件名并给出新的归档旧的创建日期???
【问题讨论】:
-
如果您不向我们展示您的代码,我们怎么可能知道?
-
@rory.ap 正如我所解释的,没有可显示的代码,这是 Windows 10 的行为问题。我想知道是否有人知道为什么 Windows 会这样......我正在成功删除,成功保存。无需显示我使用
System.IO.File.Delete()和System.Drawing.Bitmap.Save()解释的代码。 -
总是需要展示代码。我确定问题出在您的代码上,但如果没有看到它,我们就无法知道。无论哪种方式,我们都无法帮助您,因为我们面前没有您的计算机。我们怎么知道出了什么问题?就目前而言,这个问题可能会作为题外话而被关闭,因为“为什么我的代码不起作用”是题外话,没有更具体的信息并且实际上共享您的代码。请阅读How to Ask。
-
没问题,我会试一试的。您可能很清楚,Windows 对其日期和分配方式有奇怪的限制,这就是我要问的,它显示在帖子和标题中。我指定了删除和保存的方式,当我告诉你我可以看到所有代码都在工作时,显然这还不够。这个网站已经成为一个抢手的人,谁可以评论“向我们展示你的代码,告诉我们你的 DBMS,如果没有样本数据,我们怎么可能知道你在问什么,等等。”并希望成为第一个获得支持的人。伤心,我会在别处寻找应该是一个简单的解释。
-
如果您不知道
System.IO.Bitmap.Save在创建刚刚使用System.IO.File.Delete删除的文件的新版本时如何处理新文件的创建日期,那么您不需要评论只是为了对您的评论进行一些赞成而骚扰我,我的代码对此无济于事。 @rory.ap 继续前进并帮助您真正可以帮助的人。我的假设是删除和保存具有完全相同名称的文件,可能无法让 Windows 有足够的时间来实现它的新文件而不是覆盖。这将是一个简单的答案......
标签: vb.net windows-10 system.io.file