Windows Store Javascript应用程序中的递归图片库
我想访问图片库中的所有图像文件,并通读了中提到的文章。我曾考虑过使用深度查询,但要获取图片库中的所有文件(我正在处理1TB的图片进行测试)需要很长时间 我想做的是从图片库的根开始,从根开始获取所有图片和文件夹,然后进入文件夹并递归地向内 我会从Windows Store Javascript应用程序中的递归图片库,javascript,windows-8,windows-store-apps,winjs,Javascript,Windows 8,Windows Store Apps,Winjs,我想访问图片库中的所有图像文件,并通读了中提到的文章。我曾考虑过使用深度查询,但要获取图片库中的所有文件(我正在处理1TB的图片进行测试)需要很长时间 我想做的是从图片库的根开始,从根开始获取所有图片和文件夹,然后进入文件夹并递归地向内 我会从 Windows.Storage.KnownFolders.picturesLibrary.getFoldersAsync().then(function (folders) { handleFolders(folders)
Windows.Storage.KnownFolders.picturesLibrary.getFoldersAsync().then(function (folders)
{
handleFolders(folders);
});
me handle folders函数看起来是这样的,尽管我知道GetFileAsync或getFoldersAsync没有重载以文件夹作为参数
function handleFolders(folders)
{
if (folders.size > 0)
{
Windows.Storage.KnownFolders.picturesLibrary.getFilesAsync(folders).then(function (files)
{
handleFiles(files);
for(var i = 0; i < folders.size; i++)
{
Windows.Storage.KnownFolders.picturesLibrary.getFoldersAsync(folders).then(function (recFolders)
{
handleFolders(recFolders);
});
}
});
}
else
{
var x = folders;
}
}
功能手柄文件夹(文件夹)
{
如果(folders.size>0)
{
Windows.Storage.KnownFolders.picturesLibrary.GetFileAsync(文件夹)。然后(函数(文件)
{
手文件(档案);
对于(变量i=0;i
请注意,picturesLibrary只是StorageFolder的一个著名实例
类似这样的东西会让你更接近(根据你是寻找深度优先还是广度优先的列表,可能需要进行调整):
handleFolders([Windows.Storage.KnownFolders.picturesLibrary]);
功能手柄文件夹(文件夹){
对于(var i=0;i
这正是我想要的,非常感谢!
handleFolders([ Windows.Storage.KnownFolders.picturesLibrary ]);
function handleFolders(folders) {
for (var i = 0; i < folders.length; i++) {
console.log("Folder: " + folders[i].name);
folders[i].getFilesAsync().then(function (files) {
handleFiles(files);
});
folders[i].getFoldersAsync().then(function(folders)
{
handleFolders(folders);
});
}
}
function handleFiles(files) {
for (var i = 0; i < files.length; i++)
console.log("File: " + files[i].name);
}