Mithilfe der Klasse FtpWebRequest eine lokale Datei auf einen Ftp Server abspeichern.
private void SaveOnFtP()
{
//Eine neue Datei erstellen und lokal speichern (Beispiel hier: Textfile)
StreamWriter w = new StreamWriter("C://Beispiele/MyFile.txt", true);
w.WriteLine("BlaBlaBla");
w.Close();
//Ein Request erstellen an den ftp Server
FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://ftp.meinftp.ch/");
//Die Methode angeben um eine Datei hochzuladen
request.Method = WebRequestMethods.Ftp.UploadFile;
//Berechtigungsdetails setzen vom ftp Server durch Username und Passwort
request.Credentials = new NetworkCredential("Username", "Passwort");
try
{
//Versuch eine Verbindung zu erstellen und eine Antwort zu erhalten
WebResponse response = request.GetResponse();
MessageBox.Show("Response hat funktioniert");
}
catch (Exception exp)
{
MessageBox.Show(exp.ToString());
}
//Neuer FileStream erstellen für die Datei
FileStream fs = new FileStream("C://Beispiele/MyFile.txt", FileMode.Open);
byte[] fileContents = new byte[fs.Length];
fs.Read(fileContents, 0, Convert.ToInt32(fs.Length));
fs.Flush();
fs.Close();
//Ein neuen Stream für den Request erstellen dem der FileStream mitgegeben wird.
Stream requestStream = request.GetRequestStream();
requestStream.Write(fileContents, 0, fileContents.Length);
requestStream.Close();
//Verbindung abbschliessen
request.Abort();
}
/*
* Die Datei ist nun auch lokal gespeichert
*und muss dort wieder gelöscht werden.
*/
7 Kommentare zum Snippet