我正在加載目錄樹視圖,它的子目錄。我呼籲: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