在同一台计算机上使用Filezilla服务器时如何实现FTP客户端

问题描述 投票:0回答:1

你好,我的最终目标是编写一个程序通过 sftp 将文件发送到 ax 外部服务器。

为了理解,我之前决定通过 ftp 与 Filezilla 服务器一起工作。 所以我的想法是编写一个客户端,将文件 C: emp\Test\AAA aa.txt ---> 上传到 filezilla 服务器,然后从这里直接上传到另一个位置的文件系统。 这个推理有效还是我需要远程服务器空间?

希望这能起作用,我尝试使用 FileZilla 服务器并编写客户端来实现它。

using (WebClient client = new WebClient())
{
    // open connection with connection-strings
    client.Credentials = new NetworkCredential("User1", "Password1");
    // upload zip-file on server
    client.UploadFile("ftp://localhost/C:/Temp/Test/BBB.txt" + "", WebRequestMethods.Ftp.UploadFile, "C:\\temp\\Test\\AAA.txt");
}

问题是,当我运行代码时,我得到

System.Net.WebException:“远程服务器返回错误:(550)文件不可用(例如,找不到文件,无法访问)。”

我知道我很困惑,但我没有在同一台计算机上找到客户端和服务器的任何示例。

谢谢

---添加--- 根据 Chris Berlin 的请求,我注意到 Filezilla 通过显示此内容来响应该请求

所以问题确实与错误的路径有关

c# ftp client-server filezilla
1个回答
1
投票

实际上我从来没有在本地主机上工作过。

您可以尝试该代码,但我的提示是在远程站点上工作:

string myFile = @"C:\temp\Test\aaa.txt";
string strAddress = "ftp://ipAddress:21/TestRemoteFolder/bbb.txt";


FtpWebRequest request = (FtpWebRequest)WebRequest.Create(strAddress);
request.Credentials = new NetworkCredential("myLogin","mypwd");
request.Method = WebRequestMethods.Ftp.UploadFile;

using (Stream fileStream = System.IO.File.OpenRead(myFile))
using (Stream ftpStream = request.GetRequestStream())
{
    fileStream.CopyTo(ftpStream);
}
© www.soinside.com 2019 - 2024. All rights reserved.