Laden...

Kann man vor FTP Übertragung Existens von Datei prüfen und ggf überschreiben?

Erstellt von Kaladial vor 6 Jahren Letzter Beitrag vor 6 Jahren 1.655 Views
K
Kaladial Themenstarter:in
54 Beiträge seit 2017
vor 6 Jahren
Kann man vor FTP Übertragung Existens von Datei prüfen und ggf überschreiben?

Hallo,

ich hab ein kleines Problem mit meinem FTP Upload.
Hier erstmal der Code:


        public void UploadFtpFile(string folderName, string fileName)
        {
            FtpWebRequest request;
            try
            {
                string user = MainWindow.conf.ftpUsername;
                string pass = MainWindow.conf.ftpPasswort;
                string absoluteFileName = Path.GetFileName(fileName);

                request = WebRequest.Create(new Uri(string.Format(@"ftp://{0}/{1}/{2}", MainWindow.conf.DruckerIpAsString, folderName, absoluteFileName))) as FtpWebRequest;
                request.Method = WebRequestMethods.Ftp.UploadFile;
                request.UseBinary = true;
                request.UsePassive = true;
                request.KeepAlive = true;
                request.Credentials = new NetworkCredential(user, pass);
                request.ConnectionGroupName = "group";

                using (FileStream fs = File.OpenRead(fileName))
                {
                    byte[] buffer = new byte[fs.Length];
                    fs.Read(buffer, 0, buffer.Length);
                    fs.Close();
                    Stream requestStream = request.GetRequestStream();
                    requestStream.Write(buffer, 0, buffer.Length);
                    requestStream.Flush();
                    requestStream.Close();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("FTP-Error: " + ex.Message);
            }
        }

Mit dieser Funktion uploade ich eine Datei auf meinen FTP Server.
Jetzt hab ich festgestellt, das wenn die Datei schon existiert (also überschrieben werden soll)
das er nur die existierende Datei aufmacht und den neuen Inhalt in die Datei schreibt.

Dies kann aber zu fehler führen, wenn die vorhergehende Datei mehr inhalt hatte als die neue.
Dann hab ich den neuen Inhalt und danach fragmente vom alten inhalt in der datei.

meine Frage dazu:
Kann man vor dem übertragen der Datei einfach überprüfen ob schon eine Datei mit dem namen vorhanden ist und wenn ja diese löschen?
Oder ist es möglich vor dem schreiben in die Datei diese komplett zu leeren?
Und wie ginge das?

Mfg Kaladial

K
Kaladial Themenstarter:in
54 Beiträge seit 2017
vor 6 Jahren

hab funktion im inet gefunden thx

S
324 Beiträge seit 2007
vor 6 Jahren

Natürlich kann man das.

Dafür gibt es die Methoden:

2.207 Beiträge seit 2011
vor 6 Jahren

Hallo Kaladial,

wenn du deine Frage im Beitrag schon formulieren kannst, verwende doch bitte klare aussagekräftige Titel. [Hinweis] Wie poste ich richtig?

Habs korrigiert.

Weiter: Ein Forum ist Geben und Nehmen. Daher poste doch bitte deine Lösung, damit Hilfesuchende mit der gleichen Frage in Zukunft eine Lösung zu der Frage hier im Thread finden.

Gruss

Coffeebean