【发布时间】:2012-09-06 04:06:55
【问题描述】:
可能重复:
How do you change directories using FtpWebRequest (.NET)?
private void InitFTPTransfer(string filePath)
{
string[] ftpAddress = ddcdao.ddcAddress.Split(new string[] { "http://" }, StringSplitOptions.None);
FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://" + ftpAddress[1] + "/root/" + Path.GetFileName(filePath));
request.Method = WebRequestMethods.Ftp.UploadFile;
request.Credentials = new NetworkCredential(Properties.Settings.Default.SysFTPID, Properties.Settings.Default.SysFTPPassword);
byte[] fileContents = File.ReadAllBytes(filePath);
request.ContentLength = fileContents.Length;
Stream requestStream = request.GetRequestStream();
requestStream.Write(fileContents, 0, fileContents.Length);
requestStream.Close();
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
response.Close();
}
我有上述代码可以将特定文件上传到路径。
在 ftp 中,我如何设置一个特定的目录来上传文件?
在这种情况下,我正在上传到带有嵌入式 linux 的机器,因此它需要位于 /root/somedirectory 下
编辑:我已经尝试过在请求路径中实际包含目录路径的建议,但它只是在 request.GetRequestStream(); 行抛出 System.Net.WebException 并显示消息“系统错误”;
【问题讨论】:
-
@jcolebrand 嵌入 linux,而不是 windows
-
好的,解释一下我的建议怎么行不通?你显然没有说你已经尝试过什么。为什么将路径放在文件名中不起作用?
-
@jcolebrand 它只是在“request.GetRequestStream()”处抛出 System.Net.WebException。异常消息是“系统错误”