【问题标题】:How to remember last download location when calling chrome.downloads.download? (Extension Developer)调用 chrome.downloads.download 时如何记住上次下载位置? (扩展开发者)
【发布时间】:2025-12-08 03:15:02
【问题描述】:

chrome.downloads.download 的默认行为是下载到默认下载文件夹。如果您更改文件夹,它不会记住它。我们可以保存下载到的位置以供下次调用吗?

参考:https://developer.chrome.com/extensions/downloads

【问题讨论】:

    标签: google-chrome google-chrome-extension google-chrome-devtools


    【解决方案1】:

    我刚刚能够通过禁用扩展程序和谷歌提供的 Chrome 应用程序在新安装中恢复“记住上次下载位置”功能,该功能曾经在我以前的机器上运行过。这是我关闭的:

    • 扩展:Google Docs Offline
    • Chrome 应用:文档、表格、幻灯片

    我没有试图缩小其中哪些是罪魁祸首,或者是否有任何其他扩展(我有一堆)发挥了作用。所以YMMV。祝你好运:)

    【讨论】:

      【解决方案2】:

      根据this Chromium discussion,这不是受支持的功能。

      总结:

      1. 如果您指定一个文件名,则永远不可能保存在 ~/Downloads 之外(这对我来说太糟糕了)
      2. 您应该能够使用从Chrome.downloads.download 返回的 id 手动实现某些东西(仅在子文件夹中)

      我喜欢的几句话(为简洁和礼貌而编辑):

      想要一个下载选项来选择最近的下载文件夹。最好记住每个网站的最后下载位置,就像您的其他设置一样。

      看起来很合理。

      如果没有为 downloads.download 指定文件名,Chrome 确实会记住最后选择的目录另存为...鉴于在不指定文件名的情况下另存为的工作方式,我的直觉是它与文件名相同...但事实并非如此。

      那个很有趣。所以它已经有点支持它了。在下载之外保存没有安全问题。

      【讨论】:

      • 我可以确认使用saveAs: true 而不是filename: 确实可以记住下载文件夹。
      【解决方案3】:

      令人担忧的是,Chrome 实际上并没有为扩展程序提供获取最后下载路径的能力。有人说,这是出于安全考虑,而其他人则说,没有必要为用户提供 API。

      您也不能将下载路径存储在您的扩展程序中,因为 Chrome 不允许您获取选定的下载文件夹。我希望 Google 以后可以为我们提供这些功能中的任何一个。

      【讨论】:

      • 您有什么可以分享的参考资料吗? (例如:确认不存在的功能请求,或错误报告)
      【解决方案4】:

      其实你可以保存之前的下载位置。

      如果您进行全新安装,首先将下载设置更改为“每次都询问”。非常重要的是不要单击可以指定一个下载位置的文本框(如果只单击一次,则需要重新安装)。

      Chrome 会弹出下载窗口,其中包含您上次保存的位置。

      此外,您应该取消选中同步首选项中的“设置”,因为每次您将设置同步到新浏览器时它都会中断。

      【讨论】:

        【解决方案5】:

        已解决。非常简单的方法:插入 USB 驱动器或 SD 卡。转到 chrome 设置,然后将此驱动器指定为默认下载位置。 卸下驱动器/SD 卡。下载一些东西 - 第一次下载时,Chrome 会提供保存到您的用户文档文件夹,但您可以将其保存到任何您想要的位置。 下次会记住这个位置。瞧。很简单。

        【讨论】: