2017-02-27 6 views
0

J'essaie d'afficher une liste de fichiers qui sont stockés sur le périphérique android dans mon application cordova et j'utilise le plugin cordova -file. Je ne vois pas le fichier lorsque je sélectionne le bouton de navigation dans mon application, mais je vois le fichier dans le système "Mes fichiers" android app.Je ne suis pas en train de voir les fichiers qui sont stockés sur l'appareil Android en utilisant le plugin cordova

Voici la liste des dossiers que j'itérer à travers

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

Sur le téléphone Android, je vois les fichiers bu procédant comme suit:

  1. select/paramètres/stockage/stockage interne
  2. sélection explorer
  3. Sur la emnu la rubrique dit MyFiles> stockage de l'appareil
  4. sélectionner les données ou télécharger ..

    Sur l'appareil résoudre cordova.file.externalRootDirectory à file: /// stockage/émulé/0/télécharger

Cependant, je ne vois pas de fichiers

Voici mon code

$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

duplication possible de la question sans réponse ici: http://stackoverflow.com/questions/40557762/list-the-files-that-are-stored-in-the-download-folder-on-an-android-device – Matthias

+0

Merci .. J'ai vu cette réponse et j'ai copié une partie du code, Cependant, cela ne fonctionne pas .. Les fichiers sur l'appareil est stocker dans "Stockage interne \ root \ sdcard \ Download" et aucun de chemin défini dans ce code faire référence ce chemin – user2570135

+0

cela semble être un problème commun, [encore une question sans réponse] (http://stackoverflow.com/questions/41152137/cordova-file-download-to-android-download-folder) concernant Cordova et la Dossier de téléchargement. – Matthias

Répondre

0

Here's quelque chose. Peut-être que tu devras faire quelque chose comme ça. Ce n'est probablement pas aussi portible entre les appareils que l'utilisation du plugin 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 

J'ai utilisé this comme référence.

Peut-être que tout ce qui vous manquait était l'appel à requestFileSystem.

+0

Merci, mais ça ne fonctionne pas pour moi .. C'est ce que j'essaie à faire, j'ai un fichier de type d'entrée de balise html et j'essaie de lister le fichier sur l'appareil ,,, Sur une version android je vois un système filechooser mais je n'ai aucune idée comment obtenir le fichier sélectionné ... Donc, J'ai décidé de lire le dossier android .. Maintenant, je ne suis pas sûr de savoir comment procéder – user2570135

+0

Je rétrograder à API 22 sur android et maintenant je suis capable de lire le fichier ... pas sûr de ce qui se passe .. – user2570135