gpt4 book ai didi

android - 列出 phonegap 构建目录中的文件

转载 作者:行者123 更新时间:2023-11-29 00:24:35 24 4
gpt4 key购买 nike

您好,我目前正在尝试使用 phonegap build 创建一个图库应用程序,但我无法从本地存储读取文件。我正在使用这个功能:

function listDir(directoryEntry){

var directoryReader = directoryEntry.createReader();

directoryReader.readEntries(function(entries){ // success get files and folders
for(var i=0; i<entries.length; ++i){
alert(entries[i].name) // this is just for checking purposes, no matter what i put here it wont fire
}
}, function(error){ // error get files and folders
alert(error.code);
});
}

function getFileSystem(){
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem){ // success get file system
var sdcard = fileSystem.root;
sdcard.getDirectory('dcim',{create:false}, function(dirEntry){
listDir(dirEntry);
}, function(error){
alert(error.code);
})
}, function(evt){ // error get file system
console.log(evt.target.error.code);
});
}


getFileSystem();

listDir 函数甚至不会触发(error 函数也不会)。我试图添加一个“OnDeviceReady”监听器来调用 getFileSystem() 函数,但它也不起作用,而且我尝试了很多方法,甚至使用官方 phonegap 文档,但它无法读取我的目录。任何人都知道如何做到这一点(我目前正在使用 android)?提前致谢。

最佳答案

您需要记住,cordova api 是异步的。

此代码读取我的应用程序外部存储目录中的文件列表:

    function getFilesList(callback) {
console.log('getFilesList');
var fileList = [];

function onDirResolved(dir) {
var reader =dir.createReader();
reader.readEntries(function(entries) {
console.log('readEntries');
for (var i=0; i<entries.length; i++) {
if (entries[i].name.indexOf(".fototoon") != -1) {
fileList.push(entries[i].fullPath);
};
};
console.log('fileList ' + fileList);
callback(fileList);
}, errorHandler);
};

function onFsResolved(fs) {
window.resolveLocalFileSystemURL(
cordova.file.externalApplicationStorageDirectory,
onDirResolved, errorHandler);
};

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0,
onFsResolved, errorHandler);

};

回调函数会收到读取的文件列表。

关于android - 列出 phonegap 构建目录中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20682453/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com