如题:
现在FTP地址
FTP://****.xicp.net/
地址下面有文件夹A~C和文件abc.txt 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(); 现在用上面方法只能得到abc.txt
如何遍历得到A~C文件夹?c#
现在FTP地址
FTP://****.xicp.net/
地址下面有文件夹A~C和文件abc.txt 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(); 现在用上面方法只能得到abc.txt
如何遍历得到A~C文件夹?c#
解决方案 »
- 我写的英语,计算机学习利器推荐
- 程序中使用AxRealAudio控件,如何在没有安装realplayer的机器中运行呢?》
- 初学C#想做个聊天工具练练手,请各位大大指教下如何入手,非常感谢
- 关于Point类型的一点疑问
- 大出血,问一个重量级的问题
- Assembly的GetCustomAttributes竟然取不出某些特性,有人知道原因吗
- 最后一点分了求教,如何在winform里实现设置某个节点及其以下的子节点的打开或者关闭呀谢谢
- 请教一个配置问题
- Dev Express ComboBoxEdit控件
- 如何把很多三维长方体按位置绘制成可视的立体模
- 如何实现ASP.NET有错误自动发送邮件。
- c#窗口显示问题
FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://www.contoso.com/");
request.Method = WebRequestMethods.Ftp.ListDirectoryDetails; // This example assumes the FTP site uses anonymous logon.
request.Credentials = new NetworkCredential ("anonymous","[email protected]"); FtpWebResponse response = (FtpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader reader = new StreamReader(responseStream);
Console.WriteLine(reader.ReadToEnd()); Console.WriteLine("Directory List Complete, status {0}", response.StatusDescription);
reader.Close();
response.Close();
{
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; }
}