【发布时间】:2015-03-28 11:14:37
【问题描述】:
我下载并安装了 FileZilla 服务器。
然后我在 FileZilla 中使用地址:127.0.0.1 端口:14147 和管理员用户名:admin
而且连接良好。
但是现在我想使用C#连接到服务器上传下载和删除文件。
这是我的代码。当我在 ipage.com 上使用我的在线 FTP 服务器时,此代码运行良好
但现在我想将它与 FileZilla 一起使用。
string fff = "";
public string[] GetFileList()
{
string[] downloadFiles;
StringBuilder result = new StringBuilder();
WebResponse response = null;
StreamReader reader = null;
try
{
FtpWebRequest reqFTP;
reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + f.Host + "/"));
fff = "ftp://" + f.Host + "/";
reqFTP.UseBinary = true;
reqFTP.Credentials = new NetworkCredential(f.Username, f.Password);
reqFTP.Method = WebRequestMethods.Ftp.ListDirectory;
reqFTP.Proxy = null;
reqFTP.KeepAlive = false;
reqFTP.UsePassive = false;
response = reqFTP.GetResponse();
reader = new StreamReader(response.GetResponseStream());
string line = reader.ReadLine();
while (line != null)
{
result.Append(line);
result.Append("\n");
line = reader.ReadLine();
}
result.Remove(result.ToString().LastIndexOf('\n'), 1);
return result.ToString().Split('\n');
}
catch (Exception ex)
{
if (reader != null)
{
reader.Close();
}
if (response != null)
{
response.Close();
}
downloadFiles = null;
return downloadFiles;
}
}
在fff 我看到ftp://127.0.0.1/ 和f.Username 是空的"" 和f.Password 是admin
然后我继续,我得到了异常:
The remote server returned an error: (501) Syntax error in parameters or arguments
System.Net.WebException was caught
HResult=-2146233079
Message=The remote server returned an error: (501) Syntax error in parameters or arguments.
Source=System
StackTrace:
at System.Net.FtpWebRequest.CheckError()
at System.Net.FtpWebRequest.SyncRequestCallback(Object obj)
at System.IO.Stream.Close()
at System.Net.ConnectionPool.Destroy(PooledStream pooledStream)
at System.Net.ConnectionPool.PutConnection(PooledStream pooledStream, Object owningObject, Int32 creationTimeout, Boolean canReuse)
at System.Net.FtpWebRequest.FinishRequestStage(RequestStage stage)
at System.Net.FtpWebRequest.GetResponse()
at FTP_ProgressBar.FtpProgress.GetFileList() in c:\ftp_progressbar\FTP_ProgressBar\FtpProgress.cs:line 342
InnerException:
第 342 行是:
response = reqFTP.GetResponse();
我想要演示 FTP 服务器,以便我可以在上面检查我的 C# 程序。
【问题讨论】: