C# ganzes Verzeichnis Hochladen per FTP
Was ich versuche zu tun ist, um eine upload Webseite per FTP in C# (C Sharp). So brauche ich zum hochladen aller Dateien und Ordner in einem Ordner, halten Sie Ihre Struktur. Ich bin mit diesem FTP-Klasse: http://www.codeproject.com/Tips/443588/Simple-Csharp-FTP-Class für den tatsächlichen Upload.
Ich zu dem Schluss gekommen, dass ich schreiben Sie eine rekursive Methode, die geht durch jedes sub-Verzeichnis des Haupt-Verzeichnis und laden Sie alle Dateien und Ordner in ihm. Dies sollte eine exakte Kopie von meinem Ordner auf dem FTP. Problem ist... ich habe keine Ahnung, wie man schreiben Sie eine Methode wie das. Ich habe geschrieben rekursive Methoden vor, aber ich bin neu auf den FTP-Teil.
Dies ist, was ich habe, so weit:
private void recursiveDirectory(string directoryPath)
{
string[] filePaths = null;
string[] subDirectories = null;
filePaths = Directory.GetFiles(directoryPath, "*.*");
subDirectories = Directory.GetDirectories(directoryPath);
if (filePaths != null && subDirectories != null)
{
foreach (string directory in subDirectories)
{
ftpClient.createDirectory(directory);
}
foreach (string file in filePaths)
{
ftpClient.upload(Path.GetDirectoryName(directoryPath), file);
}
}
}
Aber seine noch lange nicht fertig und ich weiß nicht, wie es weiter geht. Ich bin sicher, mehr als ich muss das wissen! Vielen Dank im Voraus 🙂
Ohh und... Es wäre schön, wenn er berichtete, seine Fortschritte zu 🙂 (ich bin mit einem Fortschrittsbalken)
BEARBEITEN:
Vielleicht war es unklar... Wie lade ich ein Verzeichnis inklusive aller Unterverzeichnisse und Dateien mit FTP?
- Und die Frage ist?
- Können Sie lösen ein problem, das erste. Schreiben Sie eine Methode, die wird in einer Schleife durch die einzelnen Ordner in den übergeordneten Ordner, und erstellen Sie es auf der website in Frage. Sobald Sie das tun, es sollte einfach genug, um zu hochladen jede Datei in jedem Ordner. Sie haben nicht genug für uns getan, um Ihnen zu helfen. Ich kann nicht glauben, dass Sie die Nerven dazu haben, um feature-Anfragen.....
- Erstellen einer Statusanzeige werden Sie brauchen, um alle Dateien, die geladen werden müssen. Ich würde speichern Sie die Datei-Pfade in einer Liste. Dann in einer Schleife durch die Datei-Pfade zum hochladen auf den FTP-server. Nach jedem upload aktualisieren Sie dann die Fortschritte. Eine genauere bar konnte erreicht werden, indem die Größe der Datei mit der Datei-Pfad. Dann wie jede Datei die hochgeladen wird, erhöht sich der Fortschritt von der Größe der Datei. Wenn Sie brauchen, ich kann hinzufügen, ein Beispiel für letztere.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Problem Gelöst! 🙂
Okay so habe ich es geschafft zu schreiben, die Methode, myslef. Wenn jemand es brauchen fühlen Sie sich frei zu kopieren:
Funktioniert es sehr gut 🙂
upload()
Methode durch änderung derFileMode
WertOpen
:FileStream localFileStream = new FileStream(localFile, FileMode.Open);
Schrieb ich einen FTP-classe und auch wickelte es in eine WinForms-Benutzer-Kontrolle. Sie können sehen, meinen code in den Artikel Ein FtpClient-Klasse und WinForm-Steuerelement.
Schrieb ich eine wiederverwendbare Klasse upload gesamte Verzeichnis auf eine
ftp site
auf windows server,das Programm benennt auch die alte version von diesem Ordner (ich benutze es, um meine Dateien hochladen windows-Dienst-Programm auf den server).
vielleicht einige benötigen diese:
Erstellen Sie eine Instanz der Klasse:
Es sei denn, Sie tun dies für Spaß oder selbst-Verbesserung, die Verwendung eines kommerziellen Modul. Kann ich nur empfehlen, eine von Chilkat, aber ich bin sicher, es gibt andere.
Hinweis: ich bin mir ziemlich sicher das beantworten der gestellten Aufgabe, , Was ich versuche zu tun ist, um eine upload Webseite per FTP in C# (C Sharp).