無料のFTPライブラリ[終了]


94

C#用の無料のFTPライブラリ(クラス)を推奨できますか。

クラスは適切に記述され、優れたパフォーマンスを備えている必要があります。

回答:


74

以前はSystem.Net.FtpClientと呼ばれていたFluentFTPを検討してください

MITライセンスの下でリリースされ、NuGet(FluentFTP)で入手できます。


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 2012

1
コンパイルされたライブラリは.NET 3用ですが、コードを2.0に変換するのは簡単です
Deanna

3
NuGetパッケージとしても利用可能です:System.Net.FtpClient
Jeroen K

1
幾分簡単な(今?)、代わりにfile.Download、ストリームS = connection.OpenRead(ファイル名)
イェルーンK

2
確かに、独自の拡張メソッドを簡単に追加して、以前と同じ構文にすることができます。こちらが私のものです:pastebin.com/FiKMrH76
Erwin Mayer

20

.NETフレームワークに付属しているライブラリhttp://msdn.microsoft.com/en-us/library/ms229718.aspxを使用しないのはなぜですか。

編集:https ://stackoverflow.com/users/1527/による2019年4月 この回答は無効になりました。他の回答はマイクロソフトによって承認されています。

これらは、使用することを推奨しないMicrosoftによって設計されました。

新規開発でFtpWebRequestクラスを使用することはお勧めしません。FtpWebRequestの詳細と代替方法については、GitHubでWebRequestを使用しないでくださいをご覧ください。(https://docs.microsoft.com/en-us/dotnet/api/system.net.ftpwebrequest?view=netframework-4.7.2

「WebRequestを使用しないでください」ページは、ライブラリの最も信頼できるリストとして、この質問を示しています。


3
100%確かではありませんが、これらのクラスはリクエストごとに再接続しませんか?その場合は、パフォーマンスが低下します。..
ピーター・

22
このFtpWebRequestクラスは、個々のファイルのダウンロードやアップロードなど、要求/応答パターンでモデル化できる単純なトランザクションFTPアクションに対してのみ実際に機能します。FTPフォルダー構造の作成や、同じセッションでのアップロードとダウンロードなどのタスクを実行するために使用するのは非常に困難です。
2012

1
「Should」は手術の言葉です。単体テストでのみ機能するFtpWebRequestの例をデバッグするのは、おそらく時間の無駄です。
CZahrobsky 2014

1
非常に...悪いコンポーネント-ファイルまたはフォルダを簡単にリストすることはできません。間違ったURLを指定すると、例外なく実行されますが、メッセージ付きのhtmlが返されます-ファイルが見つかりません(そのため、 htmlを解析します...)Microsoftはこれにではなく、ある程度の時間をかけて通常のライブラリを作成できると思います...
VikciaR

2
MSのドキュメントdocs.microsoft.com/en-us/dotnet/api/…は、新しいプロジェクトには使用しないように言っており、この質問へのポイントを回す
ピートKirkham

12

edtFTPnetは、C#で記述された.NET用の無料の高速オープンソースFTPライブラリです。


7
サイトの時代遅れのデザインは、ライブラリの品質について私にあまり自信を与えません。
Jeroen K 2013

1
LGPLライセンスの下にあります。したがって、商用製品/サービスを開発している場合、できることとできないこと、含めるものなどのワームを開く可能性があります。また、SOに関する複数の回答や他の回答は、その件に関して異なる意見を与えます。 ..
Oleksii Vynnychenko

私はこのソフトウェアの開発者の一人です。私はLGPL違反について誰も追求したことがなく、そのようなケースを探すことさえ考えなかったという点で、私はただチップを投じると思いました。2003年にライブラリが最初に公開されたときにこのライセンスを選択した主な理由は、LGPLがそのような広く知られているライセンスの1つだけだったからです。現在、さらに多くのオプションがあり、目的に適した別のライセンスを見つける必要があります。私たちが確認したい唯一のことは、私たちのソフトウェアを使用して、それと競合する商用製品を作成しないことです。誰かがそれほど面倒ではないライセンスの提案を得ましたか?
HansA 2017年

1
ちなみに、法務担当者が心配している場合は、より自由なライセンスを$ 99で購入できます。ああ、そしてまたウェブサイトは今更新されました:)。この製品は、もう1つの非常に成功した製品、つまりCompleteFTPの一部であるため、まだ非常に活気があります。この問題を指摘してくれたOleksiiに感謝します。それについて話し合います。
HansA 2017年

7

私はMicrosoft MVPの名前であるAlex Pilottiによって書かれたAlex FTPS Clientが好きです。これは、コンソールアプリ、Windowsフォーム、PowerShell、ASP.NET(任意の.NET言語)で使用できるC#ライブラリです。マルチスレッドアプリを使用している場合は、ライブラリを同期して実行するように構成する必要がありますが、全体としては、必要なものを取得できる可能性が高い優れたクライアントです。



1

私はちょうどきた記事を投稿し、そのプレゼントFTPクライアントクラスの両方とFTPのユーザーコントロールが。

それらはシンプルで、それほど高速ではありませんが、非常に使いやすく、すべてのソースコードが含まれています。ユーザーコントロールをフォームにドロップするだけで、ユーザーはアプリケーションからFTPディレクトリに移動できます。


1

同じ問題を何度も調査した結果、これは非常に便利であることがわかりました。https//github.com/flagbug/FlagFtp

例(標準の.net "ライブラリ"でこれを実行してみてください-これは本当に大変です)-> FTPサーバー上のすべてのファイルを再帰的に取得します。

  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);
        }
    }

flagftpは、Windowsのftpクライアント呼び出しを使用します。これは良いことでも悪いことでもありませんが、ライブラリがWindowsのftp呼び出しがスローするのと同じエラーの影響を受けやすいことを意味します
John Mott
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.