2017-02-27 9 views
0

Androidデバイスに格納されているファイルのリストを自分のcordovaアプリに表示しようとしていて、cordova-fileプラグインを使用しています。私は私のアプリでブラウズボタンを選択したときに私はファイルを見ていないが、私はシステム内のファイルを "私のファイル"アンドロイドアプリを参照してください。ここでcordova-fileプラグインを使用してAndroidデバイスに保存されているファイルが表示されない

は私がアンドロイド携帯電話で

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

を通して反復していたフォルダの一覧で、私は、ファイルを参照してくださいBU以下を実行:

  1. は/設定/ストレージ/内部ストレージを選択します
  2. デバイスストレージ
  3. >見出しがMyFilesフォルダを言うemnuで
  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

ありがとう..私はその答えを見て、私はいくつかのコードをコピーした、しかし、それは動作しません..デバイス上のファイルは、 "内部ストレージ\ルート\ sdcard \ダウンロード"に格納され、このパスを参照してください – user2570135

+0

これは一般的な問題、[もう一つの未解決の質問](http://stackoverflow.com/questions/41152137/cordova-file-download-to-android-download-folder)Cordovaとフォルダをダウンロードします。 – Matthias

答えて

0

Here's何か。多分このようなことをしなければならないでしょう。これは、おそらくcordovaプラグインを使用しているデバイスと同じように移植可能ではありません。

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タグの入力タイプのファイルを持っていて、私はデバイス上のファイルを一覧表示しようとしています,,,いくつかのバージョンではアンドロイドにはシステムファイルのチューザーが表示されますが、選択したファイルを取得する方法はありません...だから、私はアンドロイドのフォルダを読むことにしました..今私はどのように進むのかわからない – user2570135

+0

私はアンドロイドのAPI 22にダウングレードし、今はファイルを読むことができます...何が起こっているのか分かりません.. – user2570135

関連する問題