ফ্রি এফটিপি লাইব্রেরি [বন্ধ]


95

আপনি কি সি # এর জন্য একটি বিনামূল্যে এফটিপি লাইব্রেরি (ক্লাস) সুপারিশ করতে পারেন recommend

ক্লাসটি ভালভাবে লিখতে হবে, এবং ভাল অভিনয় করতে হবে have

উত্তর:


76

আপনি ফ্লুয়েন্টএফটিপি বিবেচনা করতে পারেন , এটি পূর্বে System.Net.FtpClient হিসাবে পরিচিত ।

এটি এমআইটি লাইসেন্সের আওতায় প্রকাশিত হয়েছে এবং নুগেটে (ফ্লুয়েন্টএফটিপি) উপলব্ধ available


6
ধন্যবাদ!!! এটি সত্যিই খুব ভাল কাজ করে! এটি সঠিক তারিখের সময় সহ ডিরেক্টরিকে তালিকাবদ্ধ করে :)))) এবং এটির দ্রুত! নমুনা কোড: FtpClient ftp = new FtpClient (txtUsername.Text, txtPassword.Text, txtFTPAddress.Text); FtpListItem[] items = ftp.GetListing();//here you can get list with type, name, modified date and other properties. FtpFile file = new FtpFile(ftp, "8051812.xml");//file to get file.Download("c:\\8051812.xml");//download file.Name = "8051814.xml";//change name to get new file.Download("c:\\8051814.xml"); ftp.Disconnect();//close
Zviadi

4
নোট করুন যে সংকলিত গ্রন্থাগারগুলি নেট নেট 3 এর জন্য তবে কোডটি 2.0 তে রূপান্তর করতে তুচ্ছ
Deanna

4
এছাড়াও নুগেট প্যাকেজটি পাওয়া যায়: System.Net.FtpClient
জেরোইন কে

4
ফাইলের পরিবর্তে কিছুটা কম সহজ (এখন?) ডাউনলোড করুন।ডাউনলোড, স্ট্রিম এস = সংযোগ.অপেনআরয়েড (ফাইলের নাম)
জেরোইন কে

4
সত্য, তবে আপনি আগের মতো একই সিনট্যাক্স পেতে সহজেই আপনার নিজের এক্সটেনশন পদ্ধতি যুক্ত করতে পারেন। এখানে আমার: পেস্টবিন
এরউইন মায়ার

20

আপনি .NET ফ্রেমওয়ার্কের সাথে আসা লাইব্রেরিগুলি ব্যবহার করবেন না কেন: http : //msdn.mic Microsoft.com/en-us/library/ms229718.aspx ?

সম্পাদনা: 2019 এপ্রিল https://stackoverflow.com/users/1527/ এর উত্তরটি আর বৈধ নয়। অন্যান্য উত্তরগুলি মাইক্রোসফ্ট দ্বারা অনুমোদিত হয়।

এগুলি মাইক্রোসফ্ট দ্বারা ডিজাইন করা হয়েছিল যারা তাদের আর ব্যবহার করার পরামর্শ দেয় না:

আমরা আপনাকে নতুন বিকাশের জন্য FtpWebRequest ক্লাস ব্যবহার করার পরামর্শ দিই না। FtpWebRequest এর আরও তথ্য এবং বিকল্পগুলির জন্য, দেখুন গিটারহাবের উপরে ওয়েবকোস্ট ব্যবহার করা উচিত নয়। ( https://docs.microsoft.com/en-us/dotnet/api/system.net.ftpwebrequest?view=netframework-4.7.7.2 )

'WebRequest ব্যবহার করা উচিত নয়' পৃষ্ঠাটি লাইব্রেরির চূড়ান্ত তালিকা হিসাবে এই প্রশ্নের পয়েন্টগুলিতে!


4
আমি কি 100% নিশ্চিত না কিন্তু প্রতিটি অনুরোধে এই ক্লাসগুলি আবার সংযোগ স্থাপন করে না? যদি এটি হয় তবে পারফরম্যান্সটি ক্ষতিগ্রস্থ হবে ..
পিটার

22
FtpWebRequestশ্রেণী শুধুমাত্র সত্যিই সহজ জন্য কাজ করে, লেনদেনজনিত এফটিপি কর্ম যেমন ডাউনলোড বা পৃথক ফাইল আপলোড হিসাবে অনুরোধ / প্রতিক্রিয়া প্যাটার্ন আদলে করা যেতে পারে। এফটিপি ফোল্ডার কাঠামো তৈরি করা বা একই সেশনে আপলোড এবং ডাউনলোডের মতো কাজগুলি সম্পাদন করতে এটি ব্যবহার করা খুব কঠিন।
দাই

4
"উচিত" অপারেটিভ শব্দ। কেবলমাত্র আপনার ইউনিট পরীক্ষায় কাজ করে এমন FtpWebRequest উদাহরণগুলি ডিবাগ করা আপনার পক্ষে উপযুক্ত নয়।
সিজেহরোবস্কি

4
খুব ... খারাপ উপাদান - আপনি ফাইল বা ফোল্ডারগুলি তালিকাভুক্ত করতে পারবেন না, যদি আপনি খারাপ ইউআরএল সরবরাহ করেন - এটি কোনও ব্যতিক্রম ছাড়াই চলবে, তবে বার্তা সহ এইচটিএমএল ফিরিয়ে দেবে - আমি কোনও ফাইল খুঁজে পাইনি (সুতরাং, আপনার প্রয়োজন এইচটিএমএলটি পার্স করুন) ... আমার মনে হয় মাইক্রোসফ্ট কিছুটা সময় ব্যয় করতে পারে এবং সাধারণ গ্রন্থাগার তৈরি করতে পারে এবং এটি নয় ...
ভিকিয়াআর

4
এমএস ডকুমেন্টেশন ডকস.মাইক্রোসফটকম /en-us/dotnet/api/… নতুন প্রকল্পগুলির জন্য ব্যবহার না করার জন্য বলেছে এবং github.com/dotnet/platform-compat/blob/master/docs/DE0003.md এ নির্দেশ করে এই প্রশ্নের দিকে দৃষ্টি নিবদ্ধ করুন
পিট কির্খাম

12

edtFTPnet সি। # তে লিখিত .NET এর জন্য একটি ফ্রি, দ্রুত, ওপেন সোর্স এফটিপি লাইব্রেরি।


7
সাইটের তারিখের নকশা লাইব্রেরির গুণমান সম্পর্কে আমাকে খুব বেশি আত্মবিশ্বাস দেয় না।
জেরোইন কে

4
এটি এলজিপিএল লাইসেন্সের আওতায়। সুতরাং আপনি যদি বাণিজ্যিক পণ্য / পরিষেবা বিকাশ করছেন যা আপনি কী কী কী কী কী কী করণীয় এবং কী কী অন্তর্ভুক্ত করতে পারবেন না ইত্যাদি কীটগুলি নিয়ে খুলতে পারে এবং এসও এবং অন্যদের একাধিক উত্তর সে বিষয়ে বিভিন্ন মতামত দেয়। ..
ওলেকসেই ভিনিচেনকো

আমি এই সফ্টওয়্যারটির অন্যতম বিকাশকারী। আমি ভেবেছিলাম যে আমি কেবল চিপ করেছিলাম যে আমরা কখনই এলজিপিএল লঙ্ঘনের জন্য কাউকে অনুসরণ করতে পারি নি বা এমন কোনও মামলা সন্ধান করার জন্য ভাবিও নি। ২০০৩ সালে লাইব্রেরিটি প্রথম প্রকাশিত হওয়ার সময় আমরা এই লাইসেন্সটি বেছে নেওয়ার প্রধান কারণ হ'ল এলজিপিএল হ'ল প্রায় একমাত্র এই জাতীয় লাইসেন্সগুলির মধ্যে একটি। এখন আরও অনেক অপশন রয়েছে এবং আমাদের সম্ভবত আরও একটি লাইসেন্স পাওয়া উচিত যা আমাদের লক্ষ্যকে আরও ভালভাবে স্যুট করে। কেবলমাত্র আমরা নিশ্চিত করতে চাই যে কেউ আমাদের সফ্টওয়্যারটি এমন কোনও বাণিজ্যিক পণ্য তৈরি করতে ব্যবহার করে না যা এটির সাথে প্রতিযোগিতা করে। কম সংখ্যক লাইসেন্সের জন্য কি কেউ পরামর্শ পেয়েছেন?
হানস

4
যাইহোক, যদি আপনার আইনী লোকেরা এটি সম্পর্কে সদা উদ্বিগ্ন থাকেন তবে আপনি কেবল $ 99 এর জন্য আরও উদার লাইসেন্স কিনতে পারেন। ওহ, এবং এছাড়াও ওয়েবসাইট আপডেট করা হয়েছে এখন :)। পণ্যটি এখনও অনেকটা বেঁচে আছে, আংশিক কারণ এটি অন্য একটি খুব সফল পণ্যের অংশ, অর্থাৎ কমপ্লিটএফটিপি। এই সমস্যাটি দেখানোর জন্য ওলেকসিকে ধন্যবাদ। আমরা এটি আলোচনা করব।
হানস

7

আমি অ্যালেক্স এফটিপিএস ক্লায়েন্ট পছন্দ করি যা একটি মাইক্রোসফ্ট এমভিপি নাম অ্যালেক্স পাইলটি লিখেছেন। এটি একটি সি # লাইব্রেরি যা আপনি কনসোল অ্যাপস, উইন্ডোজ ফর্ম, পাওয়ারশেল, এএসপি.নেট (যে কোনও। নেট ভাষায়) ব্যবহার করতে পারেন। আপনার যদি একটি মাল্টিথ্রেডেড অ্যাপ থাকে তবে আপনাকে সিঙ্ক্রোনালি চালানোর জন্য লাইব্রেরিটি কনফিগার করতে হবে, তবে সামগ্রিকভাবে একটি ভাল ক্লায়েন্ট সম্ভবত আপনাকে যা প্রয়োজন তা আপনাকে পেয়ে যাবে।



1

আমি সবে নিবন্ধ পোস্ট করেছি যা একটি এফটিপি ক্লায়েন্ট শ্রেণি এবং একটি এফটিপি ব্যবহারকারী নিয়ন্ত্রণ উভয়ই উপস্থাপন করে।

এগুলি সহজ এবং খুব দ্রুত নয়, তবে এটি ব্যবহার করা খুব সহজ এবং সমস্ত উত্স কোড অন্তর্ভুক্ত রয়েছে। ব্যবহারকারীদের আপনার অ্যাপ্লিকেশন থেকে এফটিপি ডিরেক্টরিতে নেভিগেট করার অনুমতি দেওয়ার জন্য কেবল একটি ফর্মের উপরে ব্যবহারকারীর নিয়ন্ত্রণটি ফেলে দিন।


1

একই ইস্যুতে প্রচুর তদন্তের পরে আমি এটিকে অত্যন্ত সুবিধাজনক বলে মনে করেছি: https://github.com/flagbug/FlagFtp

উদাহরণস্বরূপ (স্ট্যান্ডার্ড। নেট "লাইব্রেরি" দিয়ে এটি করার চেষ্টা করুন - এটি আসল ব্যথা হবে) -> এফটিপি সার্ভারে সমস্ত ফাইল পুনরুদ্ধার করে:

  public IEnumerable<FtpFileInfo> GetFiles(string server, string user, string password)
    {
        var credentials = new NetworkCredential(user, password);
        var baseUri = new Uri("ftp://" + server + "/");

        var files = new List<FtpFileInfo>();
        AddFilesFromSubdirectory(files, baseUri, credentials);

        return files;
    }

    private void AddFilesFromSubdirectory(List<FtpFileInfo> files, Uri uri, NetworkCredential credentials)
    {
        var client = new FtpClient(credentials);
        var lookedUpFiles = client.GetFiles(uri);
        files.AddRange(lookedUpFiles);

        foreach (var subDirectory in client.GetDirectories(uri))
        {
            AddFilesFromSubdirectory(files, subDirectory.Uri, credentials);
        }
    }

ফ্ল্যাগফটপ উইন্ডোজ এফটিপি ক্লায়েন্ট কল ব্যবহার করে। এটি কোনও ভাল বা খারাপ জিনিস নয় তবে এর অর্থ এই যে গ্রন্থাগারটি একই ত্রুটিগুলির জন্য সংবেদনশীল যা উইন্ডোজ এফটিপি কলগুলি ফেলতে পারে
জন মোট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.