如何在我自己的 PC 上连接到本地 FileZilla FTP 服务器进行测试?

How can I connect on my own PC to a local FileZilla FTP server for testings?

我下载并安装了 FileZilla Server。

然后我在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.Passwordadmin

然后我继续并出现异常:

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# 程序。

由于 USER 命令中缺少用户名,501 可能是由 FileZilla 服务器发送的。如果不提供用户名,您将无法登录 FTP 服务器。

您必须使用 FTP 帐户登录服务器。您无法使用管理密码登录。

在 FileZilla Server 界面中,转到菜单 编辑 > 用户,创建一个 FTP 用户,然后在您的代码中使用它 username/password。