kiy*_*yui 4 c# recursion file windows-runtime windows-store-apps
以前在 Windows 窗体应用程序中,这就是我递归搜索文件夹中所有文件的方式。我知道 Windows 应用商店应用程序几乎是沙盒化的,但是必须有一种方法可以获取已知文件夹目录中的所有文件。我一直在尝试使用音乐目录来做到这一点。但是,它对我不起作用。我已经完成了谷歌搜索,但找不到任何说明如何实现这一目标的线程。我尝试了以下代码:
private async void dirScan(string dir)
{
var folDir = await StorageFolder.GetFolderFromPathAsync(dir);
foreach (var d in await folDir.GetFoldersAsync())
{
foreach(var f in await d.GetFilesAsync())
{
knownMusicDir.Add(f.Path.ToString());
}
dirScan(d.ToString());
}
}
Run Code Online (Sandbox Code Playgroud)
我希望有人可以看看我的代码并希望能更正它。提前致谢!
您可以使用此扩展方法:
public static async Task<IEnumerable<StorageFile>> GetAllFilesAsync(this StorageFolder folder)
{
IEnumerable<StorageFile> files = await folder.GetFilesAsync();
IEnumerable<StorageFolder> folders = await folder.GetFoldersAsync();
foreach (StorageFolder subfolder in folders)
files = files.Concat(await subfolder.GetAllFilesAsync());
return files;
}
Run Code Online (Sandbox Code Playgroud)