2014-10-09 17 views
8

Ich habe ein Problem mit Android (nicht auf anderen Plattformen getestet), wo ich die cordova-Datei-API verwenden möchte, um eine Datei aus dem/www-Ordner zu lesen. Im Internet gibt es widersprüchliche Informationen darüber, ob dies möglich ist oder nicht. Ich habe ein Beispiel wie folgt:Cordova File Plugin - Lesen von www Ordner?

window.resolveLocalFileSystemURL(cordova.file.applicationDirectory + "www/index.html", gotFile, fail);

aber ich bin immer Fehler 1 (Datei nicht gefunden). Ich kann mit AJAX die Datei abrufen, die ich brauche, aber sie passt nicht zu meinem Anwendungsfall. Ich möchte ein Verzeichnis im Ordner/www abfragen und eine dynamisch benannte Datei lesen. Irgendwelche Ideen?

Ich mag würde eine aktualisierte Antwort haben, als die, die ich gesehen habe, ist mehr als 1 Jahr alt: Can you read files in the www folder using PhoneGap.'s JS methods?

Vielen Dank im Voraus.

Antwort

2

Per Raymond Camden von früher in diesem Jahr, ist dies nicht möglich, mit dem cordova = Datei-Plugin: http://www.raymondcamden.com/2015/01/21/phonegapcordova-tip-working-with-files-under-www-and-android -

In erster Linie können Sie die Dateisystem-APIs verwenden, um mit Dateien unter der Arbeit www Ordner. Die Dokumentation für das Datei-Plugin gibt fälschlicherweise an, dass Sie Lesezugriff auf das Anwendungsverzeichnis haben (das www enthalten würde), aber das ist falsch.

Aber es gibt mehrere Verzeichnisse, die Sie Zugang haben tun die Datei Plugin zu verwenden. Hier einige Beispielcode, den Inhalt von ein paar von ihnen abzurufen: https://stackoverflow.com/a/29905718/346550

6

Mit dieser Funktion können alle Dateien im www/Ordner erhalten

function listDir(path){ 
    window.resolveLocalFileSystemURL(path, 
    function (fileSystem) { 
     var reader = fileSystem.createReader(); 
     reader.readEntries(
     function (entries) { 
      console.log(entries); 
     }, 
     function (err) { 
      console.log(err); 
     } 
    ); 
    }, function (err) { 
     console.log(err); 
    } 
); 
} 
//example: list of www/ folder in cordova/ionic app. 
listDir(cordova.file.applicationDirectory + "www/"); 

(Der www-Ordner ist im Nur-Lese-Modus Sie. kann nichts schreiben 10 Dokumentation erklären dies. Aber Sie können die copyTo() method of html5 API File verwenden, um Ihre Daten an einem anderen Ort zu kopieren)

Verwandte Themen