|
分類:[C#]
分類:[C#]
C#の超初心者です。 見よう見まねでファイルをFTPサーバーへアップロードするものを作りました。 以下のようなコードで、PCの C:\01.txt をサーバーに転送することはできたのですが、 01.txtの中に日本語が混ざると、そこだけ文字化けしたり文字が削除されたりします。 ASCII文字だけの場合は問題なく転送されます。 (暗号化については考慮していません)
using System.Net … Try { FtpWebRequest request = (FtpWebRequest)WebRequest.Create _ "ftp://ftp.….co.jp/01.txt"); request.Method = WebRequestMethods.Ftp.UploadFile; request.UseBinary = false; request.Credentials = new NetworkCredential("ID…", "PW…");
//カレントディレクトリの設定 System.IO.Directory.SetCurrentDirectory(@"C:\"); StreamReader sourceStream = new StreamReader("01.txt");
//byte配列に入れる byte[] fileContents = System.Text.Encoding.GetEncoding _ ("Shift_JIS").GetBytes(sourceStream.ReadToEnd()); sourceStream.Close();
//転送 Stream requestStream = request.GetRequestStream(); requestStream.Write(fileContents, 0, fileContents.Length); requestStream.Close();
//状態取得 FtpWebResponse response = (FtpWebResponse)request.GetResponse(); MessageBox.Show("Upload Completed"); response.Close(); } …
byte配列に入れている所に問題があると思うのですが、色々調べても有効な 解決策が見つかりませんでした。 文字化けせずに送る方法をご存知でしたら教えて頂けないでしょうか。 初歩的なことで申し訳ございませんが、よろしくお願い致します。
|