Zum Inhalt springen

Fehlermeldung bei anderem Pfad


Empfohlene Beiträge

Geschrieben

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;

}

Geschrieben

@ 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.

Geschrieben

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.

Geschrieben
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.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...