c#在ftping之前重命名文件

Posted

技术标签:

【中文标题】c#在ftping之前重命名文件【英文标题】:c# rename file before ftping 【发布时间】:2012-01-04 01:43:06 【问题描述】:

如何在将文件实际 ftped 到服务器之前将文件重命名为时间戳或随机唯一编号?

示例:如果我选择 C:\taco.pdf ..... 1321981871.pdf 实际上是 ftp 到服务器的内容。

FileInfo toUpload = new FileInfo(this.txtFile.Text);

 FtpWebRequest request =
            (FtpWebRequest)WebRequest.Create(
            "ftp://192.168.0.186" + "/" + toUpload.Name
            );

 request.Method = WebRequestMethods.Ftp.UploadFile;

request.Credentials =
            new NetworkCredential("myuser","mypassword");

Stream ftpStream = request.GetRequestStream();
        FileStream file = File.OpenRead(this.txtFile.Text);

 int length = 1024;
        byte[] buffer = new byte[length];
        int bytesRead = 0;


        do
        
            bytesRead = file.Read(buffer, 0, length);
            ftpStream.Write(buffer, 0, bytesRead);
        
        while (bytesRead != 0);

 file.Close();
        ftpStream.Close();

【问题讨论】:

【参考方案1】:

如果您只是希望文件上传具有不同的名称而不在本地重命名,您就不能更改

 FtpWebRequest request = 
            (FtpWebRequest)WebRequest.Create( 
            "ftp://192.168.0.186" + "/" + toUpload.Name 
            ); 

 FtpWebRequest request = 
            (FtpWebRequest)WebRequest.Create( 
            "ftp://192.168.0.186/whatever file name you want"); 

?

【讨论】:

谢谢!明白了,我添加了字符串 extension = toUpload.Extension;拉出扩展名并将其附加到我的新文件名中。 FtpWebRequest 请求 = (FtpWebRequest)WebRequest.Create("192.168.0.186" + 新文件名 + 扩展名); 单击对您最有帮助的答案旁边的复选标记。对于您之前提出的所有问题,我建议您返回并这样做。【参考方案2】:

使用FileInfo.MoveTo:

toUpload.MoveTo(newName);

【讨论】:

以上是关于c#在ftping之前重命名文件的主要内容,如果未能解决你的问题,请参考以下文章

从 C# 重命名网页

C#实现文件批量重命名源码下载

如何永久重命名 C# 项目的 Properties 命名空间

Linux在目录之前重命名文件

在 C# / Python 中重命名远程文件服务器上的文件

在 C# 中重命名目录 [关闭]