Laden...

Pfad rekursiv durchsuchen - Directory.GetFiles Exception: To long path

Erstellt von asharp4dan vor 13 Jahren Letzter Beitrag vor 13 Jahren 5.111 Views
A
asharp4dan Themenstarter:in
12 Beiträge seit 2010
vor 13 Jahren
Pfad rekursiv durchsuchen - Directory.GetFiles Exception: To long path

Hallo,
kleines Problem. Ich möchte alle Dateien aus einem Verzeichnis auslesen inkl.
Unterordner. Funktioniert auch sehr gut nur irgendwann gibt er mir eine Exception mit der Mitteilung das der Pfad zu lang ist.

Die Pfade sind auch sehr lang.

Gibt es eine Möglichkeit trotzdem das Verzeichnis durchlaufen zu lassen ?


  static void ReadDirectory(string folder)
        {
            // Alle Verzeichnisse aus dem aktuellen Folder auslesen
            string[] subDirs = Directory.GetDirectories(folder);

            

            foreach (string subDir in subDirs)
            {

                string[] files = Directory.GetFiles(subDir, "*.dwg");

                foreach (string file in files)
                {
                    
                    Console.WriteLine(file);
                }



               // Console.WriteLine(subDir);
                ReadDirectory(subDir);
            }

            
        }

Fehlermeldung:
Unhandled Exception: System.IO.PathTooLongException: The specified path, file name, or both are too long.

799 Beiträge seit 2007
vor 13 Jahren

Meines Wissens nicht.

Bei mir hat Eclipse in einer Endlosschleife immer weiter verschachtelte Ordner angelegt. Wenn ich versucht habe das über den Explorer zu löschen kam eine ähnliche Fehlermeldung.

As a man thinketh in his heart, so he is.

  • Jun Fan
    Es gibt nichts Gutes, außer man tut es.
  • Erich Kästner
    Krawutzi-Kaputzi
  • Kasperl
M
1.439 Beiträge seit 2005
vor 13 Jahren

Das geht schon, nur unterstützt es das .Net Framework nicht. Du musst "\?" an den Pfad voranstellen, dann kann der Pfad bis zu 32K Unicode Zeichen enthalten.
Es gibt aber sicherlich bereits .Net Komponenten die mit langen Dateipfaden arbeiten können. =>google

M
1.439 Beiträge seit 2005
vor 13 Jahren

Bei mir hat Eclipse in einer Endlosschleife immer weiter verschachtelte Ordner angelegt. Wenn ich versucht habe das über den Explorer zu löschen kam eine ähnliche Fehlermeldung.

Seit Vista oder W7 unterstützt auch der Windows Explorer lange Dateipfade. Spät aber doch...

795 Beiträge seit 2006
vor 13 Jahren
`There are 10 types of people in the world: Those, who think they understand the binary system Those who don't even have heard about it And those who understand "Every base is base 10"`
5.742 Beiträge seit 2007
vor 13 Jahren

Seit Vista oder W7 unterstützt auch der Windows Explorer lange Dateipfade. Spät aber doch...

Also ich musste jedenfalls kürzlich unter Win7 eine Ordnerstruktur ein paar Verzeichnisse aufwärts verschieben, um sie löschen zu können...
Scheinbar ist wohl auch dort die Unterstützung noch nicht perfekt.