2016-09-14 31 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); 
相關問題