我正在調用這個函數來加載一個TreeView與磁盤上的目錄列表。遞歸調用正在破壞我的數據?
private void LoadDirectories(string currentPath, TreeNodeCollection nodes)
{
DirectoryInfo directoryInfo = new DirectoryInfo(currentPath);
DirectoryInfo[] directories = directoryInfo.GetDirectories();
foreach (DirectoryInfo dir in directories)
{
if ((dir.Attributes & FileAttributes.System) != FileAttributes.System &&
(dir.Attributes & FileAttributes.Hidden) != FileAttributes.Hidden)
{
TreeNode newNode = nodes.Add(dir.Name);
LoadDirectories(dir.FullName, newNode.Nodes);
}
}
}
如果我註釋掉遞歸調用,我得到樹中的所有子目錄。如果我不這樣做,我不會。一些目錄丟失。我不確定發生了什麼事。
幫助?
Scott