Avatar billede e_c Nybegynder
12. december 2003 - 01:57 Der er 6 kommentarer og
1 løsning

hente alle filer fra et directory og subdirectories?

Hej.

Jeg er ved at lave en appliaktion, hvor det skal være muligt at gennemløbe et directory + eventuelle subdirectories (hvis sådanne er til stede) og så skrive dem i en RichTextBox. Jeg kan sagtens få alle filerne fra  rode af et bestemt directory tilføjet til RichTextBoxen, MEN filerne i eventuelle subdirectories kommer ikke med.

Er problemet forståeligt? Håber det er :-)

/E_c
Avatar billede nielsbrinch Nybegynder
12. december 2003 - 02:14 #1
Nøgleordet er rekursivitet. Her er noget fin kode som kan udskrive alle directories. Det skal naturligvis tilpasses dit program:

class Recursive {
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main(string[] args) {
    GetFiles("E:/");
    GetSubFolders("E:/");
    Console.Read();
}

static void GetFiles(string directory) {
    try {
        string [] files = Directory.GetFiles(directory);
        Console.WriteLine("Files in folder \"{0}\"", directory);
        foreach(string f in files) {
            Console.WriteLine(f);
        }
    }
    catch(System.UnauthorizedAccessException) {
        Console.WriteLine("Access not allowed to \"{0}\"", directory);
    }

}
static void GetSubFolders(string directory) {
    try {
        //Get files for this folder
        GetFiles(directory);
        string [] subFolders = Directory.GetDirectories(directory);
        foreach(string sf in subFolders) {
            GetSubFolders(sf);
        }
    }
    catch(System.UnauthorizedAccessException) {
        Console.WriteLine("Access not allowed to \"{0}\"", directory);
    }
}


Hvis du ikke gider rode med det, er der én der har lavet det samme som det du vil. Se blot på:
http://www.codeproject.com/csharp/RecursiveFileExplorer.asp
Avatar billede nielsbrinch Nybegynder
12. december 2003 - 02:15 #3
Der mangler lige en } til sidst i koden - men den havde du nok fundet også selv :)
Avatar billede nielsbrinch Nybegynder
12. december 2003 - 02:17 #4
Hov repsak, dit svar er anderledes end mit - det fik mig lige til at læse spørgsmålet grundigt en ekstra gang. Det lader til ingen af os har ramt sømmet på hovedet :-)
Avatar billede nielsbrinch Nybegynder
12. december 2003 - 02:20 #5
Jo, min kode kan godt bruges. I foreach-løkken under GetFiles-metoden kan du indsætte den enkelte fil i din RichTextBox.
Avatar billede nielsbrinch Nybegynder
12. december 2003 - 02:22 #6
Du skal bare udføre GetSubFolders(string path); på den sti du vil have filerne fra - skriver du path = "C:/" får du samtlige filer på C-drevet.
Avatar billede e_c Nybegynder
13. december 2003 - 14:29 #7
tak.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester