【发布时间】:2020-08-23 10:12:12
【问题描述】:
我最近使用 iCloud for Windows (10) 将所有图片从 iCloud 下载到我的本地计算机上。然后我想创建一个备份,所以我将所有 (15'000) 张图片复制粘贴到了外部硬盘上。
我注意到,由于复制粘贴操作,“创建日期”(事后看来很明显)已从拍摄照片的日期更改为复制操作的日期/时间。
自从复制操作以来,在我注意到日期更改之前,我已经花费了很多时间将图片放入子文件夹等。我现在想将原始日期/时间放回元数据中。
我的想法是制作一个 iCloud 原始档案的目录,返回文件名、md5 哈希和创建日期。然后我想编写一个脚本(Powershell?)在我的子文件夹中找到匹配的文件,并更新日期。
几个问题:
- 这似乎是最好的方法吗?
- 以后有没有更好的方法来复制照片,保留原来的创建日期?
无论这对于 Powershell 是否是一个好主意,对正确方向的任何帮助,将不胜感激。
【问题讨论】:
-
至少在 Windows 中的同驱动器文件副本上,副本将保留原始文件的修改时间(PowerShell/.NET 中的
LastWriteTime属性),但创建时间(CreationTime属性)得到设置为当前时间。你确定这不是这里发生的事情吗?或者你说它改变的不是属性而是文件本身的(EXIF?)标签?您说您将照片“下载到我的本地计算机上”,然后将它们备份到“外部硬盘上”,那么复制是通过 iCloud → 本地驱动器 → 外部驱动器,还是 iCloud → 外部驱动器?时间戳在哪个位置更改? -
另外,您使用什么来确定时间戳已更改?探险家?如果我打开 JPEG 文件的属性并选择
Details选项卡,在Origin部分下有一个Date taken值,在File部分下有Date created和Date modified值;所有三个值都相同。如果我复制并粘贴该照片并查看其Details,Date created值已更改为当前时间。File部分中的所有内容都来自 文件系统,而不是特定于格式的元数据,因此根据我之前的评论,预计会发生变化。 -
我也在使用资源管理器。我已经下载了“iCloud for Windows”——它将你的 iCloud 照片下载到指定的目录(在我的例子中是
C:\Users\pr0no\iCloud,因为这是我在 iCloud 应用程序中选择的目录)。如果我看一张图片:Properties > Details > Origin,那么所有这些字段都是空的。但是,在Properties > Details > File下,我看到Date Created 08/12/2016 14:22(照片拍摄的实际日期/时间)和Date Modified 05/05/2020 13:17(iCloud 应用程序将照片下载到我的本地计算机的时间)。 -
但是如果我现在将
CTRL-C CTRL-V这张照片放到另一个文件夹在同一个磁盘上(我之前说我复制到外部磁盘上是错误的),那么@987654338 @ 更新到CTRL-V的时间,但我想保留这个Date Created。在Properties > Details > Advanced Photo它说EXIF version 0221但所有其他元数据(除了前面提到的File属性外,都是空的。所以我想,同样根据你的评论,这种行为是预期的,但我的问题是:为什么原始 iCloud 下载从 2016 年开始使用Date Created写入文件? -
说了这么多,我不认为您的重要时间戳已更改,因此无需修复。这只是文件 attributes 中的时间戳和文件 data 中的时间戳之间的差异的问题。所有这一切的一个警告是除非当您说“我现在想将原始日期/时间放回元数据”时,“原始日期/时间”是文件属性时间戳,并且从未嵌入(我假设为JPEG)时间戳。那会很糟糕,因为我不希望在像这样跨越系统时保留属性时间戳。
标签: windows powershell icloud