我正在尝试从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/
仍然无法正常工作。