我正在加载一个带有目录的树视图,它是子目录。我的呼吁:
string[] dirs = Directory.GetDirectories(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments));
返回所有我想要的目录和一些我不想要的目录......比如无法访问/虚拟的“我的音乐”、“我的视频”等......由于库结构(访问拒绝)...
我怎样才能避免填充这些无法访问的目录?如果操作系统是 Vista 或 7,我可以遍历数组并删除不需要的目录,然后保留 XP ......但我想知道是否有更“优雅”的解决方案?
在 Wim 的帮助下,我想出了这个:
private List<string> MyDocuments()
{
List<string> dirs = new List<string>(Directory.GetDirectories(
Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)));
for (int i = 0; i < dirs.Count-1; i++)
{
DirectoryInfo di = new DirectoryInfo(dirs[i]);
if (di.Attributes.HasFlag(FileAttributes.ReparsePoint))
dirs.RemoveAt(i);
}
return dirs;
}