downloads.removeFile()

downloads API 的 removeFile() 函数会从磁盘中删除已下载的文件。

此 API 会从磁盘中删除文件,但不会从浏览器的下载历史记录中删除它。因此,调用 downloads.search() 时,该项目仍会以 DownloadItem 的形式返回,但其 exists 属性将为 false

要从下载历史记录中删除文件,您需要使用 downloads.erase()

这是一个异步函数,返回一个 Promise

注意:如果您想从磁盘中删除已下载的文件从历史记录中删除它,您必须在调用 downloads.erase() 之前调用 removeFile()。如果您尝试反向操作,在调用 removeFile() 时会收到错误,因为浏览器将不再有该下载的记录。

语法

js
let removing = browser.downloads.removeFile(
  downloadId      // integer
)

参数

downloadId

一个代表您想从磁盘删除的 DownloadItem ID 的 integer

返回值

一个 Promise。如果请求成功,Promise 将会无参数地 fulfilled。如果请求失败,Promise 将会附带一个错误消息被 rejected。

示例

删除最近下载的文件

js
function onRemoved() {
  console.log(`Removed item`);
}

function onError(error) {
  console.log(`Error: ${error}`);
}

function remove(downloadItems) {
  if (downloadItems.length > 0) {
    let removing = browser.downloads.removeFile(downloadItems[0].id);
    removing.then(onRemoved, onError);
  }
}

let searching = browser.downloads.search({
  limit: 1,
  orderBy: ["-startTime"],
});

searching.then(remove, onError);

扩展程序示例

浏览器兼容性

注意:此 API 基于 Chromium 的 chrome.downloads API。