2016-09-14 63 views

回答

1

下面是使用readAsText()功能,如果你知道文件的路径的一个例子:

const fs:string = cordova.file.externalRootDirectory; 

File.readAsText(fs, filePath).then((contents) => { 
    if(typeof contents == 'string'){ 
     processFile(contents); 
    } 
}); 

一个轻微疑难杂症是文件路径不能以/开始。

这可能会引起你的一个例子是处理目录中的文件时;

const fs:string = cordova.file.externalRootDirectory; 

File.listDir(fs, "").then(files => {  
    for (let file of files){ 
     if(file.name.toLowerCase().endsWith(".csv")){ 
      File.readAsText(fs, file.fullPath.substr(1)).then((contents) => { 
       if(typeof contents == 'string'){ 
        processFile(contents); 
       } 
      }); 
     } 
    } 
}); 
1

您可以通过使用cordova-plugin-filepath

得到FileEntry的如果你有一个URI开始“内容://”,我们需要的本地文件URI开始“文件://”

FilePath.resolveNativePath返回本地文件url。

let uri = "content://com.android.externalstorage.documents/document/primary/data..."; 

window.FilePath.resolveNativePath(uri, (localFileUri) => { 
    // result is file:///storage/emulated/0/Android/data/... 
    // now get a fileEntry from this uri 
    window.resolveLocalFileSystemURL(localFileUri, (fileEntry) => { 

    }); 
}); 

文件条目,具有可用于获取一个文件对象和读取的FileReader该文件的内容的方法“文件”,e.g:

fileEntry.file((file) => { 
    var reader = new FileReader(); 
    reader.onloadend = (e) => { 
     let result = e.target.result; // text content of the file 
     // do whatever you like 
    }; 
reader.readAsText(file); 
相关问题