科尔多瓦:从SD卡读取目录和文件

时间:2019-04-28 04:10:30

标签: javascript cordova cordova-plugin-file

我正在尝试从Android上外部SD卡上的文件夹中读取目录和文件。 cordova.file.externalRootDirectory返回的file:///storage/emulated/0/不是SD卡的路径。 使用cordova.plugins.diagnostic.getExternalSdCardDetails(),我得到了SD卡的根路径,但如果尝试读取它,它将返回FileError code: 5

Cordova版本:9.0.0(cordova-lib@9.0.1)Android-API级别:22

cordova.plugins.diagnostic.getExternalSdCardDetails(function(data) {                 
  window.resolveLocalFileSystemURL(data[0].filePath + "/", 
  $scope.onFSSuccess, $scope.onError);
}, console.log);

$ scope.onError被触发,返回错误5。

this.onError = function(e) {
  console.log(e);
}

应创建SD卡文件夹读取器的功能。

this.onFSSuccess = function(fileSystem) {
  fs = fileSystem;
  var directoryReader = fileSystem.createReader();
  directoryReader.localURL = directoryReader.localURL + $scope.dirPath;
  $scope.directoryReaderPath = directoryReader.localURL;
  directoryReader.readEntries($scope.readerSuccess, $scope.onError);
}

注意:我将以下行添加到config.xml

<preference name="AndroidPersistentFileLocation" value="Compatibility" />
<preference name="AndroidExtraFilesystems" value="sdcard,cache" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

更新:我尝试使用绝对路径。 file:///storage/sdcard/0/ 仍然无法正常工作。

0 个答案:

没有答案
相关问题