FTP检索服务器某文件夹下的所有文件时,得到的文件名带/,怎么解决?
比如,我检测ftp://192.168.111.50/Ftp文件夹下的子文件和子文件夹,用来判断上传文件夹是否已存在
结果得到的是Ftp/1,Ftp/2...把他的父目录给带进来了
代码如下private bool CheckExist(string fileName)
{
try
{
FtpWebRequest checkRequest = (FtpWebRequest)FtpWebRequest.Create(new Uri(_upLoadPath));
checkRequest.Method = WebRequestMethods.Ftp.ListDirectory;
checkRequest.UseBinary = true;
checkRequest.Credentials = new NetworkCredential(_userName, _password);
FtpWebResponse response = (FtpWebResponse)checkRequest.GetResponse();
StreamReader sw = new StreamReader(response.GetResponseStream());
List files = new List();
string line = sw.ReadLine();
while (line != null)
{
files.Add(line);
line = sw.ReadLine();
}
sw.Close();
response.Close();
return files.Contains(fileName);
}
catch (System.Exception ex)
{
Log.GetLogger().WriteLog(ex);
return false;
}
}
参数取值:_upLoadPath ftp://192.168.111.50/Ftp fileName "1"(文件夹)
目的,判断1是否已存在,不存在则创建,存在则改名再上传,传成功则删掉,不成功则改回原来名字
得到的文件名形式:FTP/1 Ftp/2...........
------解决思路----------------------
把末尾的/用Replac转换掉就行了...
------解决思路----------------------
引用:files.Add(line); =>
files.Add(line.Substring(line.IndexOf("/") + 1));
最好用LastIndexOf