0

私は小さなFTPプログラムを作成しました。これは私自身が使用するためのものであるため、ログインの詳細とファイルパスがハードコーディングされています。

2つのtxtファイルのダウンロードプロセスを開始するボタンがあります。これらの内容は2つの異なるテキストボックスに入れられます。

txtファイルはUTF-8でエンコードされており、次のようになります。

line1
line2
line3
etc.

これらの2つのファイルを2つの異なるサーバーに配置しました(各サーバーに2つのファイル)。サーバー1では、両方のファイルがダウンロードされ、次のようにテキストボックスに正しく表示されます。

line1
line2
line3
etc.

サーバー2では、両方のファイルがダウンロードされ、次のようにテキストボックスに表示されます。

line1line2line3etc.

理由はよくわかりませんソフトウェア(ダウンロードプロセス)もファイルも編集していません。もちろん、サーバーの変更により、ハードコードされたファイルパスのみを編集しました。

これは私がファイルの1つをダウンロードする方法です(他のファイルは同じ方法ですが、名前が異なります):

FtpWebRequest request = (FtpWebRequest)WebRequest.Create(folder + artistsFileNameTxt);
request.Method = WebRequestMethods.Ftp.DownloadFile;
request.Credentials = new NetworkCredential(login, pass);
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader reader = new StreamReader(responseStream);

tbxArtists.Text = reader.ReadToEnd();

reader.Close();
response.Close();

何か助けはありますか?

4

3 に答える 3

2

試す

request.UseBinary = false;

デフォルトはtrueです...これは、テキストファイルを処理していることが確実な場合にのみ実行してください。

FTPプロトコルには、NewLineに関するシステムの違いに対処するためのこの「組み込み」があります。

ところで、FTP経由でアップロードする場合も、この設定を正しく設定する必要があります。そうしないと、面倒になる可能性があります...

http://msdn.microsoft.com/en-us/library/system.net.ftpwebrequest.usebinary.aspx
http://www.rhinosoft.com/newsletter/NewsL2008-03-18.asp

于 2011-08-06T23:01:34.027 に答える
1

私の推測では、最初のサーバーはWindowsであり、2番目のサーバーはLinuxです。Windowsの改行:\ r \ nLinuxの改行:\nがWindowsに正しく表示されない

于 2011-08-06T22:39:25.790 に答える
0

試す

FtpWebRequest request = (FtpWebRequest)WebRequest.Create(folder + artistsFileNameTxt);
request.Method = WebRequestMethods.Ftp.DownloadFile;
request.Credentials = new NetworkCredential(login, pass);
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader reader = new StreamReader(responseStream, Encoding.UTF8);

tbxArtists.Text = reader.ReadToEnd();

reader.Close();
response.Close();
于 2011-08-06T23:13:16.980 に答える