以下函数就是获取文件夹下的文件夹和文件列表。速度很慢
假如我的FTP上有1万个文件夹,那么就要调用这个函数1万次。每次都要传入用户密码连接,速度很低,很慢怎样能一次连接,N次获取文件列表???不用每次都连接或者谁能把这个函数优化到最快。private List<string> GetFileList(string ftpServerIP, string ftpUserID, string ftpPassword, string ftppath, int type)
{
FtpWebRequest reqFTP;
List<string> list1 = new List<string>();
try
{
reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + ftpServerIP.Trim() + "/"));
if (type==1)
{
reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + ftpServerIP.Trim() + "/" + ftppath + "/"));
}
reqFTP.UseBinary = true;
reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
reqFTP.Method = WebRequestMethods.Ftp.ListDirectory;
WebResponse response = reqFTP.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream());
string line = reader.ReadLine();
while (line != null)
{
list1.Add(line);
line = reader.ReadLine();
}
reader.Close();
response.Close();
return list1;
}
catch (Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.Message);
list1 = null;
return list1;
}
}
{
Uri Server{get;set;}
string UserName{get;set;}
string Password{get;set;} void Open();
void Close();
string[] 获取文件列表(string path);
}