2016-11-15 13 views
6

क्या मैं netcoreapp1.0 का उपयोग कर एफ़टीपी प्रोटोकॉल के माध्यम से फ़ाइल/सूची फ़ाइलों को डाउनलोड कर सकता हूं?एफ़टीपी क्लाइंट .netcore

मुझे पता है, मैं FtpWebRequest या FluentFTP उपयोग कर सकते हैं अगर मैं पूर्ण .net45 ढांचे लक्ष्य।

मेरा समाधान, हालांकि, .NET मानक 1.6 पर आधारित है और मैं सिर्फ एफ़टीपी रखने के लिए पूर्ण ढांचे का समर्थन नहीं करना चाहता हूं।

+2

आपको .NET मानक 2.0 तक प्रतीक्षा करनी है। –

उत्तर

4

netcoreapp1.0 या netstandard1.6 के लिए आउट-ऑफ-द-बॉक्स में कोई एफ़टीपी क्षमता नहीं है। FtpWebRequest netstandard2.0 में वापस आ जाएगा।

+0

समझ में आओ। 2.0 के लिए इंतजार नहीं कर सकता है इसलिए मुझे छोटा .net46 ऐप बनाना था जो एफ़टीपी से फाइल डाउनलोड करता है और उन्हें स्थानीय फ़ोल्डर में स्टोर करता है। मुख्य .netcore ऐप फ़ोल्डर की निगरानी करने के लिए FileSystemWatcher का उपयोग करता है और जब वे प्रकट होते हैं तो इन फ़ाइलों को संसाधित करते हैं। –

2

FluentFTP अब .NET कोर/.NET मानक 1.6 का समर्थन करता है। यदि आप समस्याओं में भाग लेते हैं तो कृपया समस्या ट्रैकर में कोई समस्या जोड़ें और हम इस पर काम करेंगे।

2

FtpWebRequest अब नेट स्टैंडर्ड 2.0

FluentFTP पुस्तकालय के लिए शामिल किया गया है भी नवीनतम .net मानक 2.0

0

FtpWebRequest अब नेट कोर 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 के एक सदस्य के रूप में सेट है।

संबंधित मुद्दे