为什么某些文件会一直显示在 Google Drive > 最近列表的顶部,并带有未来日期?

为什么某些文件会一直显示在 Google Drive > 最近列表的顶部,并带有未来日期?

我一直遇到一个问题,同样的文件一直出现在我的 Google Drive > 最近列表的顶部(https://drive.google.com/drive/recent),尽管我已经多年没有修改过甚至打开过它们。这使得“最近”列表变得毫无用处,因为它总是在顶部显示旧文件。

进一步检查“详细信息”窗格(快捷方式d),发现这些文件的修改日期是未来的 2038 年!

为什么会发生这种情况?我该如何修复它以使“最近”列表再次有用?

答案1

原因:

不知何故,这些文件的日期时间戳被损坏,并且修改或创建日期时间戳是未来的(通常是 2038 年)。因此,当 Google Drive 按日期降序对最近文件进行排序时,这些损坏的文件总是显示在顶部。

解决方案:

在同步这些文件的计算机上:

  1. 将文件移动到 Google Drive 目录之外的目录,这样文件就会从 Google Drive 云中删除。等待同步完成删除文件。

  2. 将这些文件的修改、创建和访问日期时间戳更改为非未来日期。(详细步骤见下文。)

  3. 将文件移回 Google Drive 目录,以便文件再次重新上传到 Google Drive 云。等待同步完成文件上传。

  4. 再次重新加载 Google Drive > 最近列表,以验证修改日期不再是将来的日期。

更改 Windows 上的日期时间戳:

2a. 将文件移动到 Google Drive 之外的目录后,在该目录中打开 powershell 窗口。

2b. (可选)列出具有未来日期的文件。

    ls * | where { ($_.LastWriteTime -gt (get-date)) -or ($_.CreationTime -gt (get-date)) -or ($_.LastAccessTime -gt (get-date)) } | select LastWriteTime, CreationTime, LastAccessTime, Name

2c. 设置所需的日期时间戳(将日期替换为您想要的日期)。

    ls * | foreach { $_.LastWriteTime = (Get-Date "12/31/2016"); $_.CreationTime = $_.LastWriteTime; $_.LastAccessTime = $_.LastWriteTime}

2d. 确认不再有文件具有未来日期。

    ls * | where { ($_.LastWriteTime -gt (get-date)) -or ($_.CreationTime -gt (get-date)) -or ($_.LastAccessTime -gt (get-date)) } | select LastWriteTime, CreationTime, LastAccessTime, Name

在 Mac 上更改日期时间戳:

2a. 将文件移动到 Google Drive 之外的目录后,在该目录中打开终端窗口。

2b. 设置所需的日期时间戳(使用格式 YYYYMMDDhhmm):

    touch -t 201612310000 *

2c. 确认日期看起来不错。第一个日期是修改日期,应该与您上面设置的日期一致。其他 3 个日期是出生/创建日期、更改日期、访问日期,可能与修改日期不一致,但请确保它们不在未来。

    stat -f "%Sm | %SB | %Sc | %Sa | %N" -t "%Y-%m-%d %H:%M:%S" *

答案2

基于 wisbucky 的回答。如果您仅在网络上访问并且无法访问 Google Drive 的桌面客户端,则可以使用以下解决方法:

  • 在最近的活动提要中选择带有未来标记的麻烦文件
  • 将它们下载为 zip 文件并确认已下载 zip 文件
  • 删除文件
  • 重新上传 zip 文件

您需要稍后解压缩,但这是一个快速而肮脏的技巧,可以删除无效的未来时间戳文件,同时将原始内容保留在新的 zip 中。

相关内容