2023年1月6日金曜日

C#でFTP接続するならFluentFTPを使おう

 

どうも。ひっくです。

C#でFTP接続する機能を実装する場合、検索するとFtpWebRequestを使用する例が良く出てきます。

しかし.NET 6 以降では、FtpWebRequestは使用が非推奨となり、FTPはサードパーティライブラリの使用が勧められているようです。

今回は、サードパーティライブラリで使い勝手が良さそうな「FluentFTP」について紹介します。

FluentFTPについて


NuGetでリリースされるFTP 、 FTPS ライブラリです。

MITライセンスのため、商用利用も可能です。

広範な FTP コマンドに対応しており、以下のようなことができます。

  • ファイルのアップロード/ダウンロード
  • SSL/TLS 接続
  • ディレクトリ リストの自動解析
  • ファイルのハッシュ/チェックサム
  • ファイルのアクセス許可/CHMOD etc.

 

詳細は公式のREADME.mdを参照してください。

 

FluentFTPを使用する


  1. NuGetでFluentFTPをインストールします。
  2.  

  3. using ディレクティブを追加します。
  4. using FluentFTP;
    

FluentFTPの使用例


  1. FTPサーバーへの接続確認、接続権限有無の確認

    // FTPクライアントを作成して、FTP接続。
    using var conn = new FtpClient("192.168.131.222", "ftpUser", "ftpPass");
    conn.AutoConnect();
    
    // FTPサーバーへの接続結果を確認
    var isSuccess = conn.IsConnected;
    
    // 指定ユーザー、パスワードでの接続結果を確認
    isSuccess = conn.IsAuthenticated;
    
  2. ファイルアップロード、ファイル移動

    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");
    
  3. ファイル存在確認、ファイル削除

    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 件のコメント:

コメントを投稿