myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Gemeinschaft » .NET-Komponenten und C#-Snippets » FTP Helper Klasse zum Zugriff auf FTP-Server
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

Antwort erstellen
Zum Ende der Seite springen  

FTP Helper Klasse zum Zugriff auf FTP-Server

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
t2t t2t ist männlich
myCSharp.de-Mitglied

Dabei seit: 22.10.2007
Beiträge: 413
Entwicklungsumgebung: VS2017
Herkunft: Hamburg


t2t ist offline

FTP Helper Klasse zum Zugriff auf FTP-Server

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo zusammen,

im Rahmen einer meiner letzten Projekte ist eine FTP-Wrapper Klasse entstanden, welche Funktionalitäten aus dem System.Net-Namespace kapselt, um so auf FTP-Server zugreifen zu können. Ich habe diese Klasse nun etwas aufbereitet und zusammen mit einem recht simplen FTP-Client als Sample für euch zur Verfügung gestellt.

Für mich galt besondere Aufmerksamkeit auf den Up- und Download-Methoden, da ich die Möglichkeit haben wollte in meiner GUI den User über Prozessfortschritt, Datendurchsatz und Restzeit zu informieren. Also habe ich im Grunde die Funktionalitäten aus meiner anderen Komponente  CopyComponent zum Kopieren von Dateien mit Fortschritts-, Datendurchsatz-, und Restzeitberechnung auch hierauf übertragen. Nach dem abonnieren des FtpProgressChanged-Events erhält man detaillierte Informationen über den Up- bzw. Download Vorgang.

Insgesamt verfügt die Komponente über folgende Methoden:

• UploadFile: Läd eine Datei auf den FTP-Server. Informationen zum Upload-Prozess erhält man über das Event FtpProgressChanged
• DownloadFile: Läd eine Datei vom FTP-Server herunter. Informationen zum Download-Prozess erhält man über das Event FtpProgressChanged
• GetDirectoryDetailList: Liefert eine Liste von Ordnern und Dateien zurück, die sich in einem bestimmten Verzeichnis auf dem Server befinden
• GetDirectoryList: Liefert eine Liste des Verzeichnis Inhalts zurück, zu einem Pfad
• GetFileSize: Emittelt die Größe einer Datei in Bytes
• DeleteFile: Löscht eine Datei
• DeleteDirectory: Löscht ein Verzeichnis
• Move: Verschiebt eine Datei oder einen Ordner.
• DirectoryOrFileExists: Überprüft, ob auf dem FTP Server ein Verzeichnis oder eine Datei zum absoluten Pfad existiert.
• CreateFolder: Erstellt ein neues Verzeichnis

Zwei Anmerkungen noch:

1.) Die Up- und Download-Methoden verwenden als (optionale) Parameter das CancellationTokenSource, welche erst ab .NET 4.0 bereitstehen. Mit dem CancellationTokenSource können asynchrone Aufrufe abgebrochen werden. Wer die Komponente in einer älteren .NET Version nutzen möchte, kann relativ leicht diesen Token entfernen.
2.) Die Methode GetDirectoryDetailList kann unter Umständen nicht auf allen FTP-Servern das gewünschte Ergebnis erzielen. Das liegt daran, dass der LIST-Befehl keine standardisierte Antwort zurückgibt. Ggf. muss die Methode dann erweitert werden. Wer dies tut ist herzlich dazu eingeladen seine Verbesserungen mir mitzuteilen, damit ich ein Update herausgeben kann.

Generell bin ich sehr offen für Fragen, Vorschläge und Verbesserungen und freue mich über jedes Feedback. Bei konstruktiver Kritik bin ich sehr gewillt die Komponente stetig zu verbessern, damit hier ein gut funktionierendes Werkzeug für den Zugriff auf FTP-Server bereit steht.


Schlagwörter: FTP, FTP-Server, Upload, Download, Restzeit, Datendurchsatz, Prozessfortschritt


Dateianhang:
unknown FtpDataProvider_v1.0.rar (96 KB, 604 mal heruntergeladen)
Neuer Beitrag 13.11.2012 13:25 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
t2t t2t ist männlich
myCSharp.de-Mitglied

Dabei seit: 22.10.2007
Beiträge: 413
Entwicklungsumgebung: VS2017
Herkunft: Hamburg

Themenstarter Thema begonnen von t2t

t2t ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Ein Screenshot der Sample Anwendung:

t2t hat dieses Bild (verkleinerte Version) angehängt:
ftpHelper.jpg
Volle Bildgröße

Neuer Beitrag 13.11.2012 13:26 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Equilibrium
myCSharp.de-Mitglied

Dabei seit: 11.05.2010
Beiträge: 180


Equilibrium ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Super Sache aber ein Fehler ist mir bereits aufgefallen.
Sollten die Logindaten nicht stimmen oder der Server nicht erreichbar sein, wird eine unbehandelte Laufzeitexception geworfen. das könnte man noch abfangen und schöner verpacken. ansonsten supi.

Gruß

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Equilibrium am 13.11.2012 13:39.

Neuer Beitrag 13.11.2012 13:38 Beiträge des Benutzers | zu Buddylist hinzufügen
t2t t2t ist männlich
myCSharp.de-Mitglied

Dabei seit: 22.10.2007
Beiträge: 413
Entwicklungsumgebung: VS2017
Herkunft: Hamburg

Themenstarter Thema begonnen von t2t

t2t ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Da hast du recht. Das Exception-Handling ist noch recht rudimentär und aktuell eher dem Verwender der Komponente überlassen eventuelle Fehler abzufangen. Ich behalte es aber mal im Hinterkopf da in Zukunft noch was nachzulegen.
Neuer Beitrag 13.11.2012 13:46 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Zwischen diesen beiden Beiträgen liegt mehr als ein Jahr.
ati_sah
myCSharp.de-Mitglied

Dabei seit: 12.04.2013
Beiträge: 8


ati_sah ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo,

ich habe versucht diesen FTP in ein C# .Net Win-Form einzubauen, funktioniert wunderbar. Soweit ich ihn in Wind-Dienst einbaue, nachdem er in dem Ereignis OnStart() springt dann kommt er nicht wiederhin nach TimerZeit=1min Ablauf.

Hat jemand vielleicht eine Idee oder Erfahrung mit diesem FTPDataProvider

MFG
ati
Neuer Beitrag 20.06.2014 09:37 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
t2t t2t ist männlich
myCSharp.de-Mitglied

Dabei seit: 22.10.2007
Beiträge: 413
Entwicklungsumgebung: VS2017
Herkunft: Hamburg

Themenstarter Thema begonnen von t2t

t2t ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Ich weiß nicht, ob ich dich richtig verstanden habe. Du möchtest die Komponente in einem Windows-Dienst einsetzen? Ohne konkret zu wissen, was du da machst kann man nur raten was den Fehler auslöst. Eventuell stimmt was mit den Verbindungsdaten zu deinem Server nicht.

Am besten du machst einen eigenen Thread dazu auf und postest dort dein konkretes Problem einschließlich dem relevanten Quellcode.
Neuer Beitrag 23.06.2014 13:31 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Zwischen diesen beiden Beiträgen liegen mehr als 2 Monate.
ati_sah
myCSharp.de-Mitglied

Dabei seit: 12.04.2013
Beiträge: 8


ati_sah ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Hallo,

im Dienst funktioniert er jetzt.

Frage: beim FTPDataProvider.DownloadFile(...); ändert er den Erstellungsdatum des gedownloadeten Datei, wie kann ich dies vermeiden, daß er den Erstellungsdatum nicht ändert ?

MFG
Neuer Beitrag 10.09.2014 15:17 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
t2t t2t ist männlich
myCSharp.de-Mitglied

Dabei seit: 22.10.2007
Beiträge: 413
Entwicklungsumgebung: VS2017
Herkunft: Hamburg

Themenstarter Thema begonnen von t2t

t2t ist offline

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

Das wird in der Tat so nicht berücksichtigt. Du könntest dir ne Methode schreiben, mit der du den Zeitstempel einer Datei auf dem Server auslesen kannst. Nach Beendigung des Downloads setzt du dann die ausgelesene Zeit in der neuen Datei.
Neuer Beitrag 19.09.2014 14:29 E-Mail | Beiträge des Benutzers | zu Buddylist hinzufügen
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum Der Startbeitrag ist älter als 7 Jahre.
Der letzte Beitrag ist älter als 5 Jahre.
Antwort erstellen


© Copyright 2003-2020 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 07.08.2020 14:16