代码之家  ›  专栏  ›  技术社区  ›  Delta76

如何检查FTP连接?

  •  8
  • Delta76  · 技术社区  · 14 年前

    有没有一种简单、快速的方法来检查FTP连接(包括主机、端口、用户名和密码)是否有效和有效?我用的是C。非常感谢。

    5 回复  |  直到 14 年前
        1
  •  2
  •   Rengasamy msarchet    10 年前

    你可以试着用 System.Net.FtpWebRequest 然后检查一下 GetResponseStream 方法。

    比如说

    System.Net.FtpWebRequest myFTP = new System.Net.FtpWebRequest
    
    //Add your credentials and ports
    
    try
    {
        myFTP.GetResponseStream();
       //set some flags
    }
    catch ex
    {
      //handle it when it is not working
    }
    
        2
  •  17
  •   Ankush Madankar    4 年前

    尝试以下操作:

    FtpWebRequest requestDir = (FtpWebRequest)FtpWebRequest.Create("ftp://ftp.google.com");
    requestDir.Credentials = new NetworkCredential("username", "password");
    try
    {
         WebResponse response = requestDir.GetResponse();
         //set your flag
    }
    catch
    {
    }
    
        3
  •  7
  •   Tolio    3 年前

    这是我使用的方法,如果你知道更好的方法,请告诉我。

    /*你好 这是一种实用的方法 Ubirajara 100%墨西哥 */

    private bool isValidConnection(string url, string user, string password)
    {
        try
        {
            FtpWebRequest request = (FtpWebRequest)WebRequest.Create(url);
            request.Method = WebRequestMethods.Ftp.ListDirectory;
            request.Credentials = new NetworkCredential(user, password);
            request.GetResponse();
        }
        catch(WebException ex)
        {
            return false;
        }
        return true;
    }
    
        4
  •  3
  •   Mahbubur Rahman    3 年前

      public async Task<bool> ConnectAsync(string host, string user, string password)
        {
            try
            {
                FtpWebRequest request = (FtpWebRequest)WebRequest.Create(host);
                request.Credentials = new NetworkCredential(user, password);
                request.UseBinary = true;
                request.UsePassive = true;
                request.KeepAlive = false; // useful when only to check the connection.
                request.Method = WebRequestMethods.Ftp.ListDirectory;
                FtpWebResponse response = (FtpWebResponse) await request.GetResponseAsync();
                return true;
            }
            catch (Exception)
            {
                return false;
            }            
        }
    
        5
  •  2
  •   Aaronontheweb    14 年前
        6
  •  -2
  •   rainhider    11 年前

    这是从msdn站点到diplay服务器的文件

    public static bool DisplayFileFromServer(Uri serverUri)
    {
    // The serverUri parameter should start with the ftp:// scheme. 
    if (serverUri.Scheme != Uri.UriSchemeFtp)
    {
        return false;
    }
    // Get the object used to communicate with the server.
    WebClient request = new WebClient();
    
    // This example assumes the FTP site uses anonymous logon.
    request.Credentials = new NetworkCredential ("anonymous","janeDoe@contoso.com");
    try 
    {
        byte [] newFileData = request.DownloadData (serverUri.ToString());
        string fileString = System.Text.Encoding.UTF8.GetString(newFileData);
        Console.WriteLine(fileString);
    }
    catch (WebException e)
    {
        Console.WriteLine(e.ToString());
    }
    return true;
    }