javascript - 列出chrome打包应用中的目录内容

标签 javascript google-chrome-app html5-filesystem

我试图在启动时读取目录的内容。文件夹 configmanifest.json 处于同一级别。 我尝试了以下代码:

window.requestFileSystem  = window.requestFileSystem || window.webkitRequestFileSystem; 
window.directoryEntry = window.directoryEntry || window.webkitDirectoryEntry;
function onInitFs(fs) {
    fs.root.getDirectory('config', {}, function(dirEntry){
          var dirReader = dirEntry.createReader();
          dirReader.readEntries(function(entries) {
            for(var i = 0; i < entries.length; i++) {
              var entry = entries[i];
              if (entry.isDirectory){
                console.log('Directory: ' + entry.fullPath);
              }
              else if (entry.isFile){
                console.log('File: ' + entry.fullPath);
              }
            }

          }, errorHandler);
        }, errorHandler);
    };

    window.requestFileSystem(window.TEMPORARY, 1024*1024, onInitFs, errorHandler);

但是永远不会调用 getDirectory 的回调。 我的 manifest.json{"fileSystem": ["write", "directory"]}权限

最佳答案

首先,您的 manifest.json 可能与此处无关。 fileSystem 权限适用于 chrome.fileSystem API ,而不是您正在使用的 HTML 文件 API。我认为您不需要 list 中的任何特殊权限即可使用这些功能。

其次,如果 getDirectory 的成功回调从未被调用,那么您的错误处理程序应该被调用。它被调用了吗?如果是这样,有什么论据?

我已经在 Chrome Canary (Chrome 35) 中试过这段代码,它工作正常,有一个变化:我必须先创建目录。没有像

这样的电话
fs.root.getDirectory("config", {create: true}, function(newDirEntry) {
    console.log(newDirEntry);
}, makeErrorHandler("createDir"));

首先,我从您的 getDirectory 调用中收到一个 NotFoundError 错误。

发生这种情况的原因可能是您尝试使用 TEMPORARY 文件系统而不是 PERSISTENT 文件系统。如果您希望目录在启动时出现,那么您应该请求它是持久的。

或者,将键 create: true 添加到您的 getDirectory 选项,并处理目录不存在但已创建的情况。

关于javascript - 列出chrome打包应用中的目录内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22141516/

相关文章:

webview - Chrome 应用 webview - 清除持久数据

Cordova:本地文件系统未定义

javascript - 循环遍历数组并对长度求和

javascript - 奇怪的 javascript 行为,这里会发生什么?

google-chrome-app - 使用 cca Google Chrome 应用程序时从后台服务触发 Chrome 警报

javascript - 关于 HTML5 FileSystem API 的一些问题

html - 是否可以轻松地正常(反混淆)访问使用 FileSystem API 编写的沙箱中的所有文件?

javascript - Uncaught ReferenceError : 'function1' is not defined

javascript - JSDoc:如何避免属性/ setter/getter 的重复文档?

google-chrome-extension - Chrome : Webview not resizing