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

时间:2016-01-25 23:45:19

标签: javascript google-chrome google-chrome-extension google-chrome-app

我正在编写一个Chrome扩展程序,它会将自定义图像添加到网页中。我希望用户将所有图像放入"背景"文件夹,我希望我的扩展能够检索"背景"中的每个文件的文件名。 extensions文件夹中的目录。似乎没有办法在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.

我该怎么做?

1 个答案:

答案 0 :(得分:4)

您可以使用chrome.runtime.getPackageDirectoryEntry获取对您的扩展程序文件夹的只读访问权限,您可以使用HTML5 FileSystem API使用该文件夹。

然而,这不允许你做你想做的事。

在您开发扩展程序时,它会正常运行,因为Chrome不介意更改扩展程序的文件夹 - 它们是预期的。

但是,当扩展程序部署到用户时,Chrome将维护扩展文件夹内容的加密哈希值。如果对文件进行任何外部修改,则扩展名被视为已泄露并被强制禁用。

所以你应该考虑其他方法,例如:

  • 使用上面的HTML5 FileSystem API来创建一个虚拟的持久文件系统,你可以让用户上传"通过您的UI文件;
  • 将数据存储为blob:中的data: / chrome.storage个URI;
  • 要求用户将文件放在您的扩展程序可以使用常用API访问的云驱动器中。