どうも。ひっくです。
C#でFTP接続する機能を実装する場合、検索するとFtpWebRequestを使用する例が良く出てきます。
しかし.NET 6 以降では、FtpWebRequestは使用が非推奨となり、FTPはサードパーティライブラリの使用が勧められているようです。
今回は、サードパーティライブラリで使い勝手が良さそうな「FluentFTP」について紹介します。
FluentFTPについて
NuGetでリリースされるFTP 、 FTPS ライブラリです。
MITライセンスのため、商用利用も可能です。
広範な FTP コマンドに対応しており、以下のようなことができます。
- ファイルのアップロード/ダウンロード
- SSL/TLS 接続
- ディレクトリ リストの自動解析
- ファイルのハッシュ/チェックサム
- ファイルのアクセス許可/CHMOD etc.
詳細は公式のREADME.mdを参照してください。
FluentFTPを使用する
- NuGetでFluentFTPをインストールします。
- using ディレクティブを追加します。
using FluentFTP;
FluentFTPの使用例
FTPサーバーへの接続確認、接続権限有無の確認
// FTPクライアントを作成して、FTP接続。 using var conn = new FtpClient("192.168.131.222", "ftpUser", "ftpPass"); conn.AutoConnect(); // FTPサーバーへの接続結果を確認 var isSuccess = conn.IsConnected; // 指定ユーザー、パスワードでの接続結果を確認 isSuccess = conn.IsAuthenticated;
ファイルアップロード、ファイル移動
using var conn = new FtpClient("192.168.131.222", "ftpUser", "ftpPass"); conn.AutoConnect(); // ファイルアップロード conn.UploadFile(@"C:\UploadFile.pdf", "/docs/UploadFile.pdf"); // ファイル移動 conn.MoveFile("/docs/UploadFile.pdf", "/docs/sub/UploadFile.pdf");
ファイル存在確認、ファイル削除
using var conn = new FtpClient("192.168.131.222", "ftpUser", "ftpPass"); conn.AutoConnect(); // ファイル存在確認 if (conn.FileExists("/docs/UploadFile.pdf")) { // ファイル削除 conn.DeleteFile("/docs/UploadFile.pdf"); }
上記は1例となります。
他の使用例については、公式のサンプルを参照してみてください。
まとめ
FTP操作をしたい場合、FluentFTPは使い勝手が非常に良いと思います。
C#でFTP接続する機能を実装する場合、使用してみてはいかがでしょうか。
今回はこのへんで。ではまた!
0 件のコメント:
コメントを投稿