2017-02-27 52 views
0

我試圖顯示在我的cordova應用中存儲在android設備上的文件列表,但我正在使用cordova -file插件。但是,我在我的應用程序中選擇瀏覽按鈕時沒有看到該文件,但我在系統「我的文件」Android應用程序中看到該文件。沒有看到使用cordova -file插件存儲在Android設備上的文件

這裏是文件夾,我遍歷通

[cordova.file.externalRootDirectory,cordova.file.dataDirectory] 

在Android手機列表中,我看到了文件BU執行以下操作:

  1. 選擇/設置/存儲/內部存儲
  2. 選擇探索
  3. 在emnu標題說MYFILES>設備存儲
  4. 選擇數據或下載..

    在設備 cordova.file.externalRootDirectory決心文件:///存儲/模擬/ 0 /下載

不過,我沒有看到任何文件

這裏我的代碼

$scope.showLocalFileOnAndroid = function() { 
      $scope.showLocalAndroidFiles = true; 
      var localURLs = [cordova.file.externalRootDirectory,cordova.file.dataDirectory 
          ]; 
      var index = 0; 
      var i; 
      var errorStr = ''; 
      var fileList = []; 
      var addFileEntry = function (entry) { 
       var dirReader = entry.createReader(); 
       dirReader.readEntries(
        function (entries) { 

         var i; 
         for (i = 0; i < entries.length; i++) { 
          if (entries[i].isDirectory === true) { 
           // Recursive -- call back into this subdirectory 
           addFileEntry(entries[i]); 
          } else { 
           var ext = entries[i].name.split('.').pop(); 
           if (ext === 'doc' || ext === 'docx' || 
            ext === 'rdf' || ext === 'pdf' || ext === 'txt' || 
            ext === 'odt') { 

            fileList.push(entries[i]); // << replace with something useful 
           } 
           index++; 
          } 
         } 
        }, 
        function (error) { 
         console.log('readEntries error: ' + error.code); 
         errorStr += '<p>readEntries error: ' + error.code + '</p>'; 
        } 
       ); 
      }; 
      var addError = function (error) { 
       console.log('getDirectory error: ' + error.code); 
       errorStr += '<p>getDirectory error: ' + error.code + ', ' + error.message + '</p>'; 
      }; 
      for (i = 0; i < localURLs.length; i++) { 
       if (localURLs[i] === null || localURLs[i].length === 0) { 
        continue; // skip blank/non-existent paths for this platform 
       } 
       window.resolveLocalFileSystemURL(localURLs[i], addFileEntry, addError); 
      } 
      $scope.fileList = fileList; 
      $scope.localFileError = errorStr; 
     }; 
+0

可能的重複的未答覆的問題在這裏:http://stackoverflow.com/questions/40557762/list-the-files-that-are-stored-in-the-download-folder-on-an-android-device – Matthias

+0

謝謝..我看到了答案,並且我複製了一些代碼,但是它不起作用。設備上的文件存儲在「Internal Storage \ root \ sdcard \ Download」中,並且沒有在該代碼中定義的路徑請參考此路徑 – user2570135

+0

這似乎是一個常見問題,[另一個未解答的問題](http://stackoverflow.com/questions/41152137/cordova-file-download-to-android-download-folder)有關科爾多瓦和下載文件夾。 – Matthias

回答

0

Here's東西。也許你必須做這樣的事情。這可能不像使用插件的設備那樣靈活。

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onFileSystemSuccess, fail); 

var localURLs = [cordova.file.externalRootDirectory, 
       cordova.file.dataDirectory, 
       "file:///Download"]; // or "file:///sdcard/Download" or "file:///storage/Download" or "file:///storage/download" or something 

我用this作爲參考。

也許你所缺少的是致電requestFileSystem

+0

謝謝,但它不適用於我..這就是我正在嘗試的要做,我有一個html標記輸入類型文件,我試圖列出設備上的文件,,,在某些版本的android我看到一個系統filechooser,但我不知道如何獲得選定的文件...所以,我決定閱讀Android文件夾..現在我不知道如何進行 – user2570135

+0

我降級到Android上的API 22,現在我能夠讀取文件...不知道發生了什麼.. – user2570135

相關問題