Comment renommer un fichier après le téléchargement

Je dois télécharger le fichier en utilisant le protocole FTP sur le serveur et renommer le fichier téléchargé après le téléchargement.

Je peux le télécharger, mais je ne sais pas comment le renommer.

Le code ressemble à ceci:

FtpWebRequest requestFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + ftpServer + "/" + "httpdocs/webroot/" + destination + "/" + fileName)); requestFTP.Proxy = null; requestFTP.Credentials = new NetworkCredential(ftpUser, ftpPassword); requestFTP.Method = WebRequestMethods.Ftp.UploadFile; FileStream fStream = fileInfo.OpenRead(); int bufferLength = 2048; byte[] buffer = new byte[bufferLength]; Stream uploadStream = requestFTP.GetRequestStream(); int contentLength = fStream.Read(buffer, 0, bufferLength); while (contentLength != 0) { uploadStream.Write(buffer, 0, contentLength); contentLength = fStream.Read(buffer, 0, bufferLength); } uploadStream.Close(); fStream.Close(); requestFTP = null; ssortingng newFilename = fileName.Replace(".ftp", ""); requestFTP.Method = WebRequestMethods.Ftp.Rename; // this like makes a problem requestFTP.RenameTo(newFilename); 

L’erreur que je reçois est

Erreur 2 Le membre non invocable ‘System.Net.FtpWebRequest.RenameTo’ ne peut pas être utilisé comme une méthode.

RenameTo est une propriété, pas une méthode. Votre code devrait se lire comme suit:

 // requestFTP has been set to null in the previous line requestFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + ftpServer + "/" + "httpdocs/webroot/" + destination + "/" + fileName)); requestFTP.Proxy = null; requestFTP.Credentials = new NetworkCredential(ftpUser, ftpPassword); ssortingng newFilename = fileName.Replace(".ftp", ""); requestFTP.Method = WebRequestMethods.Ftp.Rename; requestFTP.RenameTo = newFilename; requestFTP.GetResponse(); 

Pourquoi ne pas simplement le télécharger avec le nom de fichier correct à la place? Changez votre première ligne avec le nom de fichier que vous voulez réellement.

 FtpWebRequest requestFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + ftpServer + "/" + "httpdocs/webroot/" + destination + "/" + newFileName)); 

Mais ouvrez le stream de lecture de votre ancien nom de fichier.