我有这个代码的问题..代码给了我这些文件的名称:
"."
"orders00001.xml"
".."
"orders00010.xml"
但是在文件夹中只有order00001和订单00010.xml。你知道问题出在哪里吗?
private void getFileList()
{
List<string> files = new List<string>();
try
{
FtpWebRequest request = (FtpWebRequest)FtpWebRequest.Create(****);
request.Method = WebRequestMethods.Ftp.ListDirectory;
request.Credentials = new NetworkCredential(**, **);
request.UsePassive = true;
request.UseBinary = true;
request.KeepAlive = false;
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader reader = new StreamReader(responseStream);
while (!reader.EndOfStream)
{
Application.DoEvents();
files.Add(reader.ReadLine());
}
reader.Close();
responseStream.Close(); //redundant
response.Close();
}
catch (Exception)
{
MessageBox.Show("error connecting");
}
if (files.Count != 0)
{
foreach (string file in files)
{
//My code on work with xml
}
else
{
getFileList();
}
}
答案 0 :(得分:1)
目录管理列表。和..作为虚拟目录。目录。指向自己允许刷新目录。目录..指导您一个目录。 解析订单时过滤这两个目录条目。
您可能已经看到了像c:\ windows .. \ Users这样的目录路径实际上指向c:\ Users as ..将一个目录层次结构化。
指向路径。\ Users表示当前(。)目录中的目录Users。
你应该总是过滤它们,因为如果你正在编写一个读取目录“。”的递归算法。将导致无限循环。