How to Read File as Array From SD Card with cordova-plugin-file

my solution using cordova-plugin-file

//tested with this three types 
let url_file = "file:///sdcard/content.txt";
//let url_file = "file:///storage/emulated/0/content.txt";
//let url_file = "content://com.asus.filemanager.OpenFileProvider/file/storage/3266-3836";

url_file = url_file.replace("file:///sdcard/", "");

let file_name;
if(url_file.indexOf("content://") !== -1 || url_file.indexOf("file://") !== -1) {
    window.resolveLocalFileSystemURL(url_file, gotFile, fail);
} else {
   let aux = url_file.split("/");
   file_name = aux[aux.length - 1];
   aux.splice(aux.length - 1, 1);
   url_file = aux.join("/");

   window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail);
}

function gotFS(fileSystem) {
     fileSystem.root.getDirectory(url_file, { create: false, exclusive: false }, gotDirEntry, fail);
}

function gotDirEntry(dirEntry) {
    dirEntry.getFile(file_name, { create: false, exclusive: false }, gotFile, fail);
}

function gotFile(fileEntry) {
      fileEntry.file(function (file) {
         let reader = new FileReader();
         reader.onloadend = function (evt) {
             console.log(this.result);
         }
         reader.readAsText(file);
     }, fail);
}

function fail(error) {
    console.log(error);
}
2 Likes