110,533
社区成员
发帖
与我相关
我的任务
分享
string ftpURI = "ftp://****.xicp.net/";
string ftpUserID = "abc";
string ftpPassword = "abc";
string[] downloadFiles;
try
{
StringBuilder result = new StringBuilder();
FtpWebRequest ftp;
ftp = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpURI));
ftp.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
ftp.Method = WebRequestMethods.Ftp.ListDirectory;
WebResponse response = ftp.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.Default);
string line = reader.ReadLine();
//string fn = System.Web.HttpUtility.UrlDecode(line, System.Text.Encoding.GetEncoding("GB2312"));
while (line != null)
{
result.Append(line);
result.Append("\n");
line = reader.ReadLine();
}
result.Remove(result.ToString().LastIndexOf("\n"), 1);
reader.Close();
response.Close();
public string[] GetDirectoryList(string url)
{
string[] directory = GetFilesDetailList(url);
string[] dir = new string[directory.Length];
int count = 0;
if (directory == null)
return null;
//WIN
foreach (string str in directory)
{
if (str.Trim().Contains("<DIR>"))
{
dir[count] = str.Substring(str.IndexOf("<DIR>") + 5).Trim();
count = count + 1;
}
}
if (count > dir.Length)
{
return dir;
}
//Sevr-U
foreach (string str in directory)
{
if (str.Length > 0 && str.Trim().Substring(0, 1).ToUpper() == "D")
{
dir[count] = str.Substring(54).Trim();
count = count + 1;
}
}
return dir;
}
/// <summary>
/// 获取ftp文件详细信息
/// </summary>
/// <param name="url">ftp服务器地址加文件名如:(ftp://10.0.0.10/1.xml)</param>
/// <returns>返回文件详细信息</returns>
public string[] GetFilesDetailList(string url)
{
try
{
StringBuilder result = new StringBuilder();
FtpWebRequest ftp;
ftp = (FtpWebRequest)FtpWebRequest.Create(new Uri(url));
ftp.Credentials = new NetworkCredential(m_UserName, m_Password);
ftp.Method = WebRequestMethods.Ftp.ListDirectoryDetails;
WebResponse response = ftp.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream());
string line = reader.ReadLine();
if (line == null || line.Length < 0)
return null;
while (line != null)
{
result.Append(line);
result.Append("\n");
line = reader.ReadLine();
}
result.Remove(result.ToString().LastIndexOf("\n"), 1);
reader.Close();
response.Close();
return result.ToString().Split('\n');
}
catch (Exception ex)
{
throw ex;
}
}