我正在尝试在我的cordova应用程序中显示存储在Android设备上的文件列表,我正在使用cordova -file插件。但是,当我在应用程序中选择浏览按钮时,我没有看到该文件但我在系统“我的文件”Android应用程序中看到该文件。
这是我通过
迭代的文件夹列表[cordova.file.externalRootDirectory,cordova.file.dataDirectory]
在Android手机上,我看到文件没有执行以下操作:
选择数据或下载..
在设备上 cordova.file.externalRootDirectory解析为file:/// storage / emulated / 0 / download
但是,我没有看到任何文件
这是我的代码
$scope.showLocalFileOnAndroid = function () {
$scope.showLocalAndroidFiles = true;
var localURLs = [cordova.file.externalRootDirectory,cordova.file.dataDirectory
];
var index = 0;
var i;
var errorStr = '';
var fileList = [];
var addFileEntry = function (entry) {
var dirReader = entry.createReader();
dirReader.readEntries(
function (entries) {
var i;
for (i = 0; i < entries.length; i++) {
if (entries[i].isDirectory === true) {
// Recursive -- call back into this subdirectory
addFileEntry(entries[i]);
} else {
var ext = entries[i].name.split('.').pop();
if (ext === 'doc' || ext === 'docx' ||
ext === 'rdf' || ext === 'pdf' || ext === 'txt' ||
ext === 'odt') {
fileList.push(entries[i]); // << replace with something useful
}
index++;
}
}
},
function (error) {
console.log('readEntries error: ' + error.code);
errorStr += '<p>readEntries error: ' + error.code + '</p>';
}
);
};
var addError = function (error) {
console.log('getDirectory error: ' + error.code);
errorStr += '<p>getDirectory error: ' + error.code + ', ' + error.message + '</p>';
};
for (i = 0; i < localURLs.length; i++) {
if (localURLs[i] === null || localURLs[i].length === 0) {
continue; // skip blank / non-existent paths for this platform
}
window.resolveLocalFileSystemURL(localURLs[i], addFileEntry, addError);
}
$scope.fileList = fileList;
$scope.localFileError = errorStr;
};
答案 0 :(得分:0)
Here's某事。也许你必须做这样的事情。尽管使用cordova
插件,这可能不像设备之间那样易于使用。
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onFileSystemSuccess, fail);
var localURLs = [cordova.file.externalRootDirectory,
cordova.file.dataDirectory,
"file:///Download"]; // or "file:///sdcard/Download" or "file:///storage/Download" or "file:///storage/download" or something
我使用this作为参考。
也许你所遗忘的只是对requestFileSystem
的召唤。