获取chrome扩展目录中所有文件的文件名?

use*_*448 0 javascript google-chrome google-chrome-extension google-chrome-app

我正在写一个chrome扩展程序,它将自定义图像添加到网页。我希望用户将所有图像都放在“ backgrounds”文件夹中,并且我希望扩展程序能够检索extensions文件夹中“ backgrounds”目录中每个文件的文件名。在chrome扩展程序中似乎无法执行此操作。当我尝试使用chrome fileSystem API时,出现以下错误:

There were warnings when trying to install this extension:
'fileSystem' is only allowed for packaged apps, but this is a extension.
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

Xan*_*Xan 5

您可以使用来获取扩展程序文件夹的只读访问权限chrome.runtime.getPackageDirectoryEntry,并可以使用HTML5 FileSystem API对其进行处理

但是,这将使您无法做自己想做的事情。

在开发扩展程序时,它会正常工作,因为Chrome不会介意对扩展程序文件夹的更改-这是预期的。

但是,在将扩展程序部署给用户时,Chrome会保留扩展程序文件夹内容的加密哈希。如果对文件进行了任何外部修改,则该扩展名将被视为已损坏并且被强制禁用。

因此,您应该考虑其他方法,例如:

  • 使用上述HTML5 FileSystem API拥有一个虚拟的持久文件系统,您可以让用户通过您的UI向其“上传”文件;
  • 将数据存储为blob:/ data:URI chrome.storage或IndexedDB;
  • 要求用户将文件放在云驱动器中,您的扩展程序可以使用其常规API进行访问。