【发布时间】:2015-12-14 11:06:29
【问题描述】:
所以我在本地有一个文件需要保持相同的名称。但是当我将文件上传到 FTP 时,我想重命名它,或者在文件名中添加一些 ekstra。这是我上传文件的方式。
string localPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
string fileName = "//XmlDocument.xml";
FtpWebRequest requestFTPUploader = (FtpWebRequest)WebRequest.Create("ftp://000.000.000/Documents" + fileName);
requestFTPUploader.Credentials = new NetworkCredential(ftpUsername, ftpPassword);
requestFTPUploader.Method = WebRequestMethods.Ftp.UploadFile;
FileInfo fileInfo = new FileInfo(localPath + fileName);
FileStream fileStream = fileInfo.OpenRead();
int bufferLength = 2048;
byte[] buffer = new byte[bufferLength];
Stream uploadStream = requestFTPUploader.GetRequestStream();
int contentLength = fileStream.Read(buffer, 0, bufferLength);
while (contentLength != 0)
{
uploadStream.Write(buffer, 0, contentLength);
contentLength = fileStream.Read(buffer, 0, bufferLength);
}
uploadStream.Close();
fileStream.Close();
requestFTPUploader = null;
【问题讨论】:
-
那你为什么不简单地重命名它呢? System.IO.File.Move("旧文件名", "新文件名"); (或只是复制它)
-
因此,您有一个文件“file1”,并且在某些条件下,您希望将其重命名为“file2”,但同时保留原来的“file1”。我不知道,也许有一个看不见的隐藏复杂性,但是通过将新名称设置为副本来复制文件,然后上传这个新版本并删除它呢?基本上,如果您必须手动执行此操作,您自己会在同样的情况下做什么。
-
@L-Three 我是使用 ftps 的新手。但我试图将 somting 添加到“文件名”属性,但它给了我一个错误。提示找不到文件?
-
@L-Three 我不熟悉 System.IO.File.Move。我想要的是读取本地文件,然后重命名它,然后将其上传到 ftp。虽然本地文件没有任何反应。本地文件是只读的
-
没有什么不好的。只是试图强调未来的重点(这样您在处理与文件相关的其他问题时就不会遇到同样的问题)。