下面是我的方法,例如:当传入path为"2010-5-25"时(ftp上有一个名为2010-5-25的文件夹),能找到,但path为"控件"或"OutFile"时,则不能找到(ftp上也有名为"控件"和"OutFile"的文件夹),并在代码WebResponse response = req.GetResponse();处报错
/// <summary>
/// 从ftp服务器上获得文件列表
/// </summary>
/// <param name="path">需要查询的文件夹名</param>
/// <returns></returns>
public static string[] GetFileList(string path)
{
string[] FilesListDirectory;
StringBuilder result = new StringBuilder();
try
{
string uri = "ftp://" + ftpAddress + "/" + path;
FtpWebRequest req = (FtpWebRequest)WebRequest.Create(uri);
req.Method = WebRequestMethods.Ftp.ListDirectory;
req.UseBinary = true;
req.UsePassive = true;
req.Credentials = new NetworkCredential(ftpUid, ftpPwd); WebResponse response = req.GetResponse(); StreamReader reader = new StreamReader(response.GetResponseStream(), System.Text.Encoding.Default);//中文文件名 string line = reader.ReadLine(); while (line != null)
{ result.Append(line); result.Append("\n"); line = reader.ReadLine(); } // to remove the trailing '\n' result.Remove(result.ToString().LastIndexOf('\n'), 1); reader.Close(); response.Close(); return result.ToString().Split('\n');
}
catch (Exception ex)
{
LogFile.WriteLog(ex.Message, ex.GetHashCode().ToString(), "Error", "FileOperating.GetFileList()");
FilesListDirectory = null;
return FilesListDirectory;
}
}请各位大虾帮助
/// <summary>
/// 从ftp服务器上获得文件列表
/// </summary>
/// <param name="path">需要查询的文件夹名</param>
/// <returns></returns>
public static string[] GetFileList(string path)
{
string[] FilesListDirectory;
StringBuilder result = new StringBuilder();
try
{
string uri = "ftp://" + ftpAddress + "/" + path;
FtpWebRequest req = (FtpWebRequest)WebRequest.Create(uri);
req.Method = WebRequestMethods.Ftp.ListDirectory;
req.UseBinary = true;
req.UsePassive = true;
req.Credentials = new NetworkCredential(ftpUid, ftpPwd); WebResponse response = req.GetResponse(); StreamReader reader = new StreamReader(response.GetResponseStream(), System.Text.Encoding.Default);//中文文件名 string line = reader.ReadLine(); while (line != null)
{ result.Append(line); result.Append("\n"); line = reader.ReadLine(); } // to remove the trailing '\n' result.Remove(result.ToString().LastIndexOf('\n'), 1); reader.Close(); response.Close(); return result.ToString().Split('\n');
}
catch (Exception ex)
{
LogFile.WriteLog(ex.Message, ex.GetHashCode().ToString(), "Error", "FileOperating.GetFileList()");
FilesListDirectory = null;
return FilesListDirectory;
}
}请各位大虾帮助
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货