C# FTP: Alle Dateien mit Pfade aus einem Ordner heraufinden

Nick_SMI

Ensign
Registriert
Sep. 2015
Beiträge
153
Hallo zusammen!

Ich möchte folgendes für mein Programm haben:
Wenn ich bspw. einen Ordner/Pfad angebe, der auf meinem Server existiert, soll mir jede Datei mit ihrem Pfad zurückgeben.

Momentan habe ich folgende Funktion:

Klasse:
Code:
        public ftp(string hostIP, string userName, string password) { host = hostIP; user = userName; pass = password; }

        public string[] directoryListSimple(string directory)
        {
            try
            {
                ftpRequest = (FtpWebRequest)FtpWebRequest.Create(host + "/" + directory);
                ftpRequest.Credentials = new NetworkCredential(user, pass);
                ftpRequest.UseBinary = true;
                ftpRequest.UsePassive = true;
                ftpRequest.KeepAlive = true;
                ftpRequest.Method = WebRequestMethods.Ftp.ListDirectory;
                ftpResponse = (FtpWebResponse)ftpRequest.GetResponse();
                ftpStream = ftpResponse.GetResponseStream();
                StreamReader ftpReader = new StreamReader(ftpStream);
                string directoryRaw = null;
                try { while (ftpReader.Peek() != -1) { directoryRaw += ftpReader.ReadLine() + "|"; } }
                catch (Exception ex) { Console.WriteLine(ex.ToString()); }
                ftpReader.Close();
                ftpStream.Close();
                ftpResponse.Close();
                ftpRequest = null;
                try { string[] directoryList = directoryRaw.Split("|".ToCharArray()); return directoryList; }
                catch (Exception ex) { Console.WriteLine(ex.ToString()); }
            }
            catch (Exception ex) { 
                Console.WriteLine(ex.ToString()); 
            }
            return new string[] { "" };
        }

Im Code:
Code:
            ftp ftpClient = new ftp(@"ftp://xyyy.de", "meinBenutzername", "MeinPass");
            string[] detailDirectoryListing = ftpClient.directoryListSimple("Dateien");
            for (int i = 0; i < detailDirectoryListing.Count(); i++)
            {
                Debug.WriteLine(detailDirectoryListing[i]);
            }

Dabei listet er mir nur die von dem Ordner "Dateien"...
Nun möchte ich, dass der jeden Ordner darin öffnet und das gleiche tut, also weiter in den Ordner und jede Datei ausgeben...


Grüße und danke im Voraus! :)
 
Zurück
Oben