kann jemand mir helfen, diesen spezifischen Block des Codes zu reparieren?Speicherproblem und duplizieren in meinem C# -Programm
Das ist mein Problem. Ich habe ein Programm geschrieben, das in ähnlicher Weise wie Windows Explorer funktioniert, was mir eine Hierarchie von Dateien und Ordnern innerhalb der Festplatte und aller anderen Laufwerke in einem Computer gibt.
Dieser Code unten schien ein Problem mit dem reibungslosen Ablauf des Programms zu haben. Wenn ich das Programm starte, startet das Programm sehr langsam und es dauert lange, bis es endlich geladen wird. Dies liegt daran, dass mein Programm alle meine Dateien und Ordner durchsucht, bevor es schließlich geladen wird. Dies kann für Computer mit vielen Daten lästig sein.
Ich bin in der Lage, das Problem zu beheben, indem Sie die zwei Zeilen im try Block auskommentieren. Aber wenn ich das Programm starte und ein Laufwerk öffne, dupliziert es (Beispiel: Wenn ich C:/Laufwerk expandiere, und dann das Laufwerk C:/reduziere, erscheint ein Duplikat des Laufwerks C:/im Programm)
Hier sind die Bilder unten.
image1
image2
Und das ist das Stück Code ich rede. Wenn ihr den vollständigen Code wollt, lasst es mich wissen.
private void GetDirectories(DirectoryInfo[] subDirs, TreeNode nodeToAddTo)
{
TreeNode aNode;
DirectoryInfo[] subSubDirs;
foreach (DirectoryInfo subDir in subDirs)
{
aNode = new TreeNode(subDir.Name, 0, 0);
aNode.Tag = subDir;
aNode.ImageKey = "folder";
try
{
//subSubDirs = subDir.GetDirectories();
//GetDirectories(subSubDirs, aNode);
nodeToAddTo.Nodes.Add(aNode);
}
catch(Exception e)
{
Console.WriteLine("none");
}
}
}
Das gesamte Verzeichnis nicht rekursiv zuordnen. Dies führt zu einem langen Ausführungscode. Versuchen Sie stattdessen, einen Ordner Children zu laden, sobald es erweitert wird. Auch Ihr Code könnte Probleme mit nicht erlaubten Verzeichnissen haben. – LuckyLikey