在Python中,我希望在保存图像之前删除图像(如果它存在),唯一目的是更新文件的创建日期。生成问题的代码的一个小示例:
img = QtGui.QImage(filePath)
os.remove(filePath)
img.save(filePath)
此示例并非我正在使用的示例,但在执行此示例时,新保存的图像具有刚刚删除的文件的创建日期。当我在os.remove和img.save之间放置延迟时它没有帮助(尝试最多3秒)但是当我执行QMessagebox时,新文件实际上将获得更新的创建日期。
为什么会发生这种情况,有什么办法可以在新保存的文件上创建新的创建日期?
答案 0 :(得分:1)
以下是对我有用的内容,我从Drjnkr评论链接中给出的示例做了一个小调整。现在将utc日期/时间设置为创建日期。我仍然不知道为什么os.remove(filename)不会删除文件的创建日期后直接我重新创建文件但这也适用于我。
def changeFileCreationTime(self, fname):
now_utc = win32timezone.utcnow()
winfile = win32file.CreateFile(
fname, win32con.GENERIC_WRITE,
win32con.FILE_SHARE_READ | win32con.FILE_SHARE_WRITE |win32con.FILE_SHARE_DELETE,
None, win32con.OPEN_EXISTING,
win32con.FILE_ATTRIBUTE_NORMAL, None)
win32file.SetFileTime(winfile, now_utc, now_utc, now_utc)
winfile.close()