2016-11-15 171 views
6

我可以使用netcoreapp1.0通過FTP協議下載文件/列表文件嗎?.netcore中的FTP客戶端

我知道,我可以使用FtpWebRequestFluentFTP如果我的目標是完整的.net45框架。

但是,我的解決方案都基於.net標準1.6,我不想支持只有FTP的完整框架。

+2

你必須等到.NET標準2.0。 –

回答

4

netcoreapp1.0或netstandard1.6沒有開箱即用的FTP功能。將在netstandard2.0中返回FtpWebRequest

+0

有意義。不能等待2.0,所以我不得不創建一個小型.net46應用程序,從FTP下載文件並將它們存儲在本地文件夾中。 Main .netcore應用程序使用FileSystemWatcher來監視文件夾並在它們出現時處理這些文件。 –

2

FluentFTP現在支持.NET核心/ .NET標準1.6。如果遇到問題,請在問題跟蹤器中添加問題,我們會對其進行處理。

2

的FtpWebRequest現在包括到.NET標準2.0

FluentFTP庫也與最新的.NET標準2.0

0

FtpWebRequest在.NET核2.0現在支持兼容。見GitHub repo

實例:

public static byte[] MakeRequest(
    string method, 
    string uri, 
    string username, 
    string password, 
    byte[] requestBody = null) 
{ 
    FtpWebRequest request = (FtpWebRequest)WebRequest.Create(uri); 
    request.Credentials = new NetworkCredential(username, password); 
    request.Method = method; 
    //Other request settings (e.g. UsePassive, EnableSsl, Timeout set here) 

    if (requestBody != null) 
    { 
     using (MemoryStream requestMemStream = new MemoryStream(requestBody)) 
     using (Stream requestStream = request.GetRequestStream()) 
     { 
      requestMemStream.CopyTo(requestStream); 
     } 
    } 

    using (FtpWebResponse response = (FtpWebResponse)request.GetResponse()) 
    using (MemoryStream responseBody = new MemoryStream()) 
    { 
     response.GetResponseStream().CopyTo(responseBody); 
     return responseBody.ToArray(); 
    } 
} 

凡爲method參數的值被設定爲System.Net.WebRequestMethods.Ftp成員。