如何使用FileSystem API创建文件?

时间:2017-04-26 13:58:29

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

 {

    "description": "Test Description",
   "icons":{
     "16": "images/ticket_16.png",
     "128": "images/ticket_128.png"
   },

   "manifest_version": 2,
   "name": "Test App",

   "version": "1.0",

   "app":{
     "background":{
       "scripts": ["background.js"]
     }
   },
   "permissions": ["fileSystem",{"fileSystem": ["write", "retainEntries", "directory"]},"unlimitedStorage" ]

 }

background.js;

 chrome.app.runtime.onLaunched.addListener(function() {
     chrome.app.window.create('index.html', {
     'width': 1024,
     'height': 768
     });
 });

 window.requestFileSystem  = window.requestFileSystem || window.webkitRequestFileSystem;

 function errorHandler(e) {
     console.log(e.name + ": " + e.message);
 }

 function onInitFs(fs) {


     fs.root.getFile('C:\\Users\\jt\\Desktop\\test\\a.txt', {create: true},      function(fileEntry) {
         //fileEntry.isFile === true;
         fileEntry.name == 'a.txt';
         fileEntry.fullPath == 'C:\\Users\\jt\\Desktop\\test\\a.txt';

         fileEntry.createWriter(function(fileWriter) {

             fileWriter.onwriteend = function(e) {
                 console.log('Write completed.');
             };

             fileWriter.onerror = function(e) {
                 console.log('Write failed: ' + e);
             };



             if (!window.BlobBuilder && window.WebKitBlobBuilder)
                 window.BlobBuilder = window.WebKitBlobBuilder;

              var bb = new Blob(['Lorem Ipsum'], {type: 'text/plain'});

             console.log("bb size:"+bb.size);

             fileWriter.write(bb); 
         }, errorHandler);
     }, errorHandler);
 }

 window.requestFileSystem(window.PERSISTENT, 5*1024*1024, onInitFs,errorHandler);

您好,

我想创建一个特定的目录文本文件。这种做法只会被我们的客户使用。

我上面给出的代码不会创建我想要的文件。 当我没有指定目录时,文件已创建。但我不知道它在哪里。 我需要的是为我想要的目录创建一个.txt文件。

任何人都可以帮助我吗?

谢谢。

//更新

 chrome.fileSystem.chooseEntry({type: 'openFile'}, function(entry) {
     if (!entry) {
       console.log("Cancelled");
       return;
     }

     chrome.fileSystem.getDisplayPath(entry, function(path) {
         entry.createWriter(function(fileWriter) {

             fileWriter.onwriteend = function(e) {
                 console.log('Write completed.');
             };

             fileWriter.onerror = function(e) {
                 console.log('Write failed: ' + e);
             };

             if (!window.BlobBuilder && window.WebKitBlobBuilder)
                 window.BlobBuilder = window.WebKitBlobBuilder;

        var bb = new Blob(['Lorem Ipsum'], {type: 'text/plain'});

             console.log("bb size:"+bb.size);

             fileWriter.write(bb); 
         }, errorHandler);

     });
 });

使用我在更新部分中提供的代码,我可以将数据添加到所选文件中。 我给出的第一个代码是正确的,但我对目录有问题。

我收到此错误;

 NotFoundError: A requested file or directory could not be found at the time an operation was processed.

如何解决这个问题?

1 个答案:

答案 0 :(得分:1)