我创建了一个小型FTP程序,它仅供我自己使用,因此登录详细信息+文件路径是硬编码的。
我有一个按钮,它开始下载两个txt文件的过程 - 这些文件的内容被放入两个不同的文本框中。
txt文件使用UTF-8编码,如下所示:
line1
line2
line3
etc.
我已将这两个文件放在两个不同的服务器上(每个服务器上有两个文件)。在服务器1上,两个文件都被正确下载并显示在文本框中,如下所示:
line1
line2
line3
etc.
在服务器2上,下载这两个文件并显示在文本框中,如下所示:
line1line2line3etc.
我真的不明白为什么 - 我有不编辑软件(下载过程)和文件,我当然只编辑了硬编码文件路径,因为服务器
这是我下载其中一个文件的方式(另一个文件的方式相同,只是名称不同):
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();
任何帮助?
答案 0 :(得分: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
答案 1 :(得分:1)
我的猜测是第一台服务器是windows,而第二台服务器是linux。 Windows新行:\ r \ n Linux新行:\ n 在Windows
中无法正确显示答案 2 :(得分: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();