次のコードを使用して出力を取得しFtpWebRequest
、行を 1 つずつ解析しています。
FTPEntity entity = new FTPEntity(entityName);
entities.Add(entity);
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(textBoxFTPSite.Text + entityName);
request.Method = WebRequestMethods.Ftp.ListDirectoryDetails;
request.Credentials = new NetworkCredential(textBoxFTPUserName.Text, textBoxFTPPassword.Text);
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader reader = new StreamReader(responseStream);
string[] outputlines = reader.ReadToEnd().Trim().Split(new string[] { Environment.NewLine }, StringSplitOptions.None);
foreach (string info in outputlines) {
if (info == "") {
worker.ReportProgress(1);
continue;
}
var tokens = info.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
}
その FTP ディレクトリには何もないため、 の出力ReadToEnd()
は空白です。しかし、Split 関数は 1 つの空白要素の配列を作成しているため、if
ステートメントを使用してそれを除外する必要がありました。
Trim()
完全にトリミングしないのはなぜですか?