Chrome 扩展程序 - 更改特定下载的下载文件夹

问题描述 投票:0回答:3

我刚刚开始开发 chrome 扩展。 我想创建一个扩展以便更改特定下载的下载文件夹。

我可以做这样的事吗? 如果没有,如何在下载开始前更改默认下载文件夹,然后在下载结束后将其恢复为原始值?

google-chrome google-chrome-extension
3个回答
13
投票

您无法更改基本下载文件夹 - 此设置无论如何都不会公开。

但是,使用

chrome.downloads
API,您可以将文件放入用户下载文件夹的子文件夹中。

您可以使用

chrome.downloads.download
自行启动下载,或使用
chrome.downloads.onDeterminingFilename
请求拦截来自其他来源的下载。

您需要提供相对路径作为建议名称,例如

"special/filename"
保存到“下载”文件夹内的子文件夹
special


4
投票

不是问题的答案,但有一个 Chrome 扩展可以做到这一点。

正则表达式


0
投票

要使用 Chrome 的下载 API 自动将文件下载到特定文件夹,您可以使用以下代码:

chrome.downloads.download({
    url: 'https://example.com/file.pdf',
    filename: 'file.pdf',
    saveAs: false,  
    directoryStructure: 'preset',
    presetDirectoryId: 'DOWNLOADS'
}); 

您可以使用上面代码中的presetDirectoryId属性选择默认下载文件夹。它可以设置为以下三个值之一:

  • 'DOWNLOADS':此选项将文件保存到默认下载目录。 (默认)
  • 'APPLICATION_DATA':此选项将文件保存到应用程序数据目录。
  • 'TEMPORARY':此选项将文件保存到临时目录。

除此之外,没有其他方法可以下载文件。

如果要将文件下载到 downloads 文件夹中的特定文件夹,您可以传递带有文件名的文件夹,或者结合使用预设目录 ID 属性和预设目录名称属性:

chrome.downloads.download({
    url: 'https://example.com/file.pdf',
    filename: 'file.pdf',
    saveAs: false, 
    directoryStructure: 'preset',
    presetDirectoryId: 'DOWNLOADS',
    presetDirectoryName: 'My Folder'
}); 

这会将文件下载到下载文件夹内的新文件夹“我的文件夹”中。

© www.soinside.com 2019 - 2024. All rights reserved.