Maerad Geschrieben 6. November 2012 Geschrieben 6. November 2012 Hallo Leute! Ich wär sehr dankbar für eure Hilfe. Auch dieses mal wende ich mich an dieses Forum nachdem ich bereits in einem anderen Forum nach Hilfe gesucht habe, allerdings hab ich dort bisher keine Antwort bekommen. Fehlermeldung bei anderem Pfad - Entwickler-Ecke Ablauf des Programms Einen Datenteil von einem lokalen Verzeichnis auf den FTP Server hochladen und andere Daten von dem FTP Server in ein lokales Verzeichnis kopieren. Anschließend die Quellverzeichnisse leeren. Beim nächsten Durchlauf (sollten aus versehen nochmal die selben Daten hochgeladen worden sein) werden diese ersetzt, andernfalls soll ausgegeben werden das keine Daten vorhanden sind. Nebenbei wird ein Protokoll geschrieben, da das Programm von alleine alle 15 min laufen soll. Das Problem Es tritt nur auf wenn ich das Programm schon einmal durchlaufen habe d.h. alle Daten im Quellverzeichnis wurden kopiert und anschließend gelöscht. Schon einmal vielen Dank für eure Hilfe. string[] files; try { //Verbinden Ftp m_ftp = new Ftp(); m_ftp.Connect(Config.Default.FTPHost); m_ftp.Login(Config.Default.FTPUser, Config.Default.FTPPwd); //Kopieren der Daten m_ftp.GetFiles(vquellpfad + "*.*", vzielpfad, FtpBatchTransferOptions.Recursive,FtpActionOnExistingFiles.OverwriteAll); //gewünschter Pfad files = Directory.GetFiles(vquellpfad); //Folgende Fehlermeldung: Ein Teil des Pfades "C:\Users\s.mueller\...\bin\Debug\quelle\auftrag\" konnte nicht gefunden werden. //Eigentlicher Pfad, bei dem aber Daten übergeben werden, welche im Quellverzeichnis nicht mehr vorhanden sind //files = Directory.GetFiles(vzielpfad); if (files.Length > 0) { foreach (string s in files) { try { prot.writeProtokoll("Die Datei wurde erfolgreich heruntergeladen: " + Path.GetFileName(s)); m_ftp.DeleteFile(vquellpfad + Path.GetFileName(s)); } catch (IOException IOex) { prot.writeProtokoll("Fehler: " + IOex.ToString()); } } } else { prot.writeProtokoll("Es wurden keine Dateien heruntergeladen."); } m_ftp.Disconnect(); prot.writeProtokoll("Verbindung zum FTP-Server erfolgreich!"); return true; } Zitieren
Guybrush Threepwood Geschrieben 6. November 2012 Geschrieben 6. November 2012 und wir sollen jetzt raten welche Fehlermeldung kommt? Hast du das Programm mal debuggt? Zitieren
Klotzkopp Geschrieben 6. November 2012 Geschrieben 6. November 2012 Dir ist klar, dass Directory.GetFiles auf deinem lokalen System nach den Dateien sucht, nicht auf dem FTP-Server? Zitieren
Maerad Geschrieben 7. November 2012 Autor Geschrieben 7. November 2012 @ Guybrush Threepwood: Fehlermeldung ist folgende (zumindest im Protokoll). Beim Debuggen gibt er mir direkt keine Fehlermeldung aus, aber ich weiß das der Fehler sich auf das "files = Directory.GetFiles(vquellpfad);" bezieht Fehler beim Herunterladen der Datei! Rebex.Net.FtpException: deletion failed (550). bei Rebex.Net.Ftp.cgrDQE(Int32 ) bei Rebex.Net.Ftp.CnNcvYZ(String ) bei Rebex.Net.Ftp.DeleteFile(String remotePath) bei Runge.FTPnormal.getFileFromFTP(String vquellpfad, String vzielpfad, Int32 vrun) in C:\Users\s.mueller\Documents\Visual Studio 2010\Projects\...\FTPnormal.cs:Zeile 97 @Klotzkopp: Stimmt. Gut das du mich darauf hinweist. Ich weiß auch das ich das m_ftp davor setzen müsste, da mit dem m_ftp die Verbindung zum Server ja hergestellt bzw verbunden wird, allerdings verlangt der dann von mir 3 Argumente, wobei ich in dem Fall ja nur eins (und zwar den Quellpfad) angeben will. Warum ich 3 angeben muss bzw wo das festgelegt ist weiß ich nicht. Also an für sich weiß ich jetzt wo der Fehler ist und wie ich ihn beheben kann auch und zwar indem ich "einfach" das m_ftp irgendwie mit in das "files = ... (vquellpfad)" einbaue nur da weiß ich halt nicht weiter. Zitieren
Maerad Geschrieben 7. November 2012 Autor Geschrieben 7. November 2012 Falsche Fehlermeldung. Es ist nicht die Fehlermeldung Fehler beim Herunterladen der Datei! Rebex.Net.FtpException: deletion failed (550). bei Rebex.Net.Ftp.cgrDQE(Int32 ) bei Rebex.Net.Ftp.CnNcvYZ(String ) bei Rebex.Net.Ftp.DeleteFile(String remotePath) bei Runge.FTPnormal.getFileFromFTP(String vquellpfad, String vzielpfad, Int32 vrun) in C:\Users\s.mueller\Documents\Visual Studio 2010\Projects\...\FTPnormal.cs:Zeile 97 sondern System.IO.DirectoryNotFoundException: Ein Teil des Pfades "C:\Users\s.mueller\Documents\Visual Studio 2010\Projects\...\bin\Debug\quelle\auftrag\" konnte nicht gefunden werden. bei System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) bei System.IO.FileSystemEnumerableIterator`1.CommonInit() bei System.IO.FileSystemEnumerableIterator`1..ctor(String path, String originalUserPath, String searchPattern, SearchOption searchOption, SearchResultHandler`1 resultHandler) bei System.IO.Directory.GetFiles(String path, String searchPattern) bei Runge.FTPnormal.getFileFromFTP(String vquellpfad, String vzielpfad, Int32 vrun) in C:\Users\s.mueller\Documents\Visual Studio 2010\Projects\...\FTPnormal.cs:Zeile 88. Zitieren
Klotzkopp Geschrieben 7. November 2012 Geschrieben 7. November 2012 allerdings verlangt der dann von mir 3 Argumente, wobei ich in dem Fall ja nur eins (und zwar den Quellpfad) angeben will. Warum ich 3 angeben muss bzw wo das festgelegt ist weiß ich nicht.Das solltest du aber. Du verwendest nämlich die GetFiles-Methode deiner FTP-Klasse bereits in deinem Code, mit 3 Argumenten. Ftp.GetFiles dient offensichtlich nicht dazu, eine Liste der Dateien anzufordern, sondern lädt Dateien herunter. Wenn du wissen willst, wie du an eine Liste der Dateien auf dem FTP-Server kommst, musst du in die Dokumentation deiner FTP-Klasse schauen. Nach kurzem Überfliegen scheint mir GetList eine passende Methode zu sein. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.