我正在加载目录树视图,它的子目录。我呼吁:Windows 7库和目录结构
string[] dirs = Directory.GetDirectories(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments));
回报所有我想要的目录和一些我不...喜欢人迹罕至/虚拟“我的音乐”,“我的视频”,等等......当然,我不能做任何由于库结构(拒绝访问)而在这些目录中递归...
如何避免填充这些无法访问的目录?我可以遍历数组,并删除不需要的目录,如果操作系统是Vista或7,并离开XP ...但我想知道是否有一个更优雅的解决方案呢?
与维姆的帮助下,我想出了这个:
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;
}
你是什么意思的“无法访问”? –
返回的结构包含“我的文档\\我的音乐”....这是vista和7虚拟...如果你尝试访问任何在该路径中的任何东西,你会得到访问违规... – devHead
我应该说“路径”返回...不是结构... – devHead