私はWindowsStoreApps(Microsoftがそれを呼んでいるもの)の発見を始めたばかりで、FolderPickerの使用に関するサンプルコードに従っています。
フォルダを繰り返し処理して、すべてのサブフォルダとファイルを読みたいです。
私が見た2つの機能が必要だと思いましたが、何時間も試してみると正しく実行できません。
上記のリンクで、次のような行があります。
WinJS.log && WinJS.log("Picked folder: " + folder.name, "sample", "status");
私は次のようなものでフォルダを深く掘り下げようとしました:
folder.getFoldersAsync().then(function (folderItem) {
document.getElementById('musicFolder').innerHTML += folderItem.length + " folders)<br/>";
folderItem.forEach(function (x) {
document.getElementById('musicFolder').innerHTML += "--" + x.name + "<br/>";
x.getFilesAsync().then(function (items) {
document.getElementById('musicFolder').innerHTML += items.length + " files"+"<br>";
});
});
});
アップデート:
私は苦労してきましたが、フォルダとサブフォルダを繰り返している間、物事を整理することができません。
@Damirのコードは最も深いフォルダを掘り下げません。再帰関数が必要です。私は次の機能を思い付くことができましたが、私が言ったように結果は整理されていません
function scanFolder(folder) {
var isInc = false;
folder.getFoldersAsync().then(function (folderItem) {
if (folderItem.length > 0) {
folderItem.forEach(function (x) {
if (!isInc) {
isInc = true;
hyphen += "-";
}
document.getElementById('musicFolder').innerHTML += hyphen + x.name + "</br>";
x.getFilesAsync().then(function (items) {
items.forEach(function (item) {
allTracks.push({
name: item.name,
path: item.path
});
document.getElementById('musicFolder').innerHTML += hyphen +"-"+ item.name + "</br>";
});
}).done(function () {
scanFolder(x);
});
});
}
});
}