【发布时间】:2015-05-26 15:01:03
【问题描述】:
我需要在我的通用应用程序中获取设备(手机或 PC)中所有文件的列表。在 wpf 我做了一些这样的事情:
class Collection {
private StringCollection seachResults;
//find all mp3 files in local storage
private void ScanDrives() {
seachResults.Clear();
string[] drives = Environment.GetLogicalDrives();
foreach (string dr in drives) {
DriveInfo di = new DriveInfo(dr);
if (!di.IsReady) {
//skip if drive not ready
continue;
}
DirectoryInfo rootDir = di.RootDirectory;
WalkDirectoryTree(rootDir);
}
}
private void WalkDirectoryTree(DirectoryInfo root) {
FileInfo[] files = null;
DirectoryInfo[] subDirs = null;
try {
files = root.GetFiles("*.mp3");
} catch (UnauthorizedAccessException e) {
} catch (DirectoryNotFoundException e) {
}
if (files != null) {
foreach (FileInfo fileInfo in files) {
seachResults.Add(fileInfo.FullName);
}
subDirs = root.GetDirectories();
foreach (DirectoryInfo dirInfo in subDirs) {
WalkDirectoryTree(dirInfo);
}
}
}
}
但是当我尝试将其迁移到 winRT 应用程序时,我收到了一些错误,例如 unknown type Drive 和 unexisted method Environment.GetLogicalDrives()。
谁能说在winRT中是怎么做到的?
【问题讨论】:
-
Environment.GetLogicalDrives();我相信只适用于win32或win64。你试过 System.IO 的 GetLogicalDrives() 吗?
标签: c# .net windows-runtime system.io.file