The project of U-WA-
http://uwa.potetihouse.com/
戻る
TKFP.DLL   プログラミングTips

日本語ファイル/フォルダ名の文字コードを変更する

 ファイルやフォルダの名称に日本語を使用する場合は、FTPサーバーが使用している文字コードと TKFP.Net.FtpClientクラスが使用する文字コードを一致させる必要があります。 文字コードの変更はTKFP.Net.FtpClientクラスのFileNameCharsetプロパティに 文字コードを表す名称を登録することで行います。
 また、日本語のファイルやフォルダの名称を使用していない場合でも、FTPサーバーによっては ファイルの情報取得のレスポンス内容に日本語を混ぜるものがあります。 この場合も同様に文字コードを一致されることで、問題が解決することがあります。
C#.NET
public void Open()
{
    //接続情報
    string server = "ftp.example.jp";
    string userid = "userid";
    string pass = "pass";

    //ログオン用のクラスを作成
    TKFP.Net.IFtpLogon logon = new TKFP.Net.BasicFtpLogon(userid, pass);

    //FTPクライアントクラスの作成
    TKFP.Net.FtpClient ftp = new TKFP.Net.FtpClient(logon, server, 21);
    //ファイル/フォルダ名の文字コードを「UTF−8」に変更します
    ftp.FileNameCharset = "utf-8";

    //接続開始
    if (ftp.Connect())
    {
        System.Windows.Forms.MessageBox.Show("接続成功");
        //FTPサーバーの情報をコンソールに出力します
        System.Console.WriteLine(ftp.SystemName);
    }
    else
    {
        System.Windows.Forms.MessageBox.Show("接続失敗");
    }

    //切断
    ftp.Close();
}
VB.NET
Public Sub Open()
    '接続情報
    Dim server As String = "ftp.example.jp"
    Dim userid As String = "userid"
    Dim pass As String = "pass"

    'ログオン用のクラスを作成
    Dim logon As New TKFP.Net.BasicFtpLogon(userid, pass)

    'FTPクライアントクラスの作成
    Dim ftp As New TKFP.Net.FtpClient(logon, server, 21)
    'ファイル/フォルダ名の文字コードを「UTF−8」に変更します
    ftp.FileNameCharset = "utf-8"

    '接続開始
    If ftp.Connect() Then
        System.Windows.Forms.MessageBox.Show("接続成功")
        'FTPサーバーの情報をコンソールに出力します
        System.Console.WriteLine(ftp.SystemName)
    Else
        System.Windows.Forms.MessageBox.Show("接続失敗")
    End If

    '切断
    ftp.Close()
End Sub
VB.NETのコードはC#.NETを元に「C#.NET to VB.NET Translator」によって作成したものです

トップページへ移動
The project of U-WA-
http://uwa.potetihouse.com/