Hallo ihr,
ich will in einem Thread ein Verzeichnis und dessen Unterverzeichnisse durchsuchen. Ich frage mich nun wie man das am besten erledigt:
Code:
private void BWThread_DoWork(object sender, DoWorkEventArgs e)
{
TVTree.BeginUpdate();
try
{
TVTree.Nodes.Clear();
SearchPath(SelPath + "\\", "", TVTree.Nodes);
}
finally
{
TVTree.EndUpdate();
}
}
Er erlaubt mir nämlich nicht auf TVTree zuzugreifen. Aber leider brauche ich den Tree, beziehungsweise den Rootnode, damit ich die Nodes füllen kann.
SearchPath sieht übrigens so aus:
Code:
private int SearchPath(string BasePath, string SubPath, TreeNodeCollection Root)
{
DirectoryInfo dir = new DirectoryInfo(BasePath + SubPath);
int FileCnt = 0;
foreach (DirectoryInfo SubDir in dir.GetDirectories())
{
TreeNode tn = new TreeNode(SubDir.Name);
tn.Checked = true;
if (SearchPath(BasePath, SubPath + SubDir.Name + "\\", tn.Nodes) > 0)
Root.Add(tn);
}
foreach (FileInfo DfmFile in dir.GetFiles("*.dfm"))
{
TreeNodePlus tn = new TreeNodePlus(DfmFile.Name);
tn.Checked = true;
DfmEntry entry = new DfmEntry(DfmFile.FullName);
tn.Entry = entry;
Root.Add(tn);
FileCnt++;
}
return FileCnt;
}
MfG
xZise