求解:c#是否有什么类方法,可以获得一个URL下面的所有目录和文件信息? 求解:c#是否有什么类方法,可以获得一个URL下面的所有目录和文件 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 System.IO.Directory.GetFiles 如果你只能用浏览器访问, 进不了服务器,那只能获取到这个 url 的 html , 再根据内容去解析了 写一个GetPage(string url),获取页面获取网页里所有链接(除了"../"),并保存A标签的文本和href判断链接是目录链接(href 以 / 结尾)还是文件链接,为目录链接递归调用GetPage()方法 using System.IO类方法是获取本地的。这个不能取url的。 感谢回复,你的方法比较靠谱些,能发一份你哪个类给我试下吗?你这里除了文件还有子目录,要管吗?我看你有个UpdateList.xml为什么不读取一下看看内容?顺手做了一下,效果如下图: string d = "http://120.*.*.171/SOFTUPDATE/";//你自己填自己ip地址,我这边根据截图随便填了已有的 System.Net.Http.HttpClient client = new System.Net.Http.HttpClient(); string z = ""; try { client.Timeout = TimeSpan.FromSeconds(3);//超时时间,这里根据网络情况自己考虑,我觉得3s足够了 z = client.GetAsync(d).Result.Content.ReadAsStringAsync().Result; } catch (Exception) { //throw; } var reg = @"(?is)<a[^>]*?href=(['""\s]?)(?<href>[^'""\s]*)\1[^>]*?>"; var mach = System.Text.RegularExpressions.Regex.Matches(z.ToLower(),reg,System.Text.RegularExpressions.RegexOptions.IgnoreCase); foreach (System.Text.RegularExpressions.Match m in mach) { Console.WriteLine(m.Groups["href"].Value);//这就是每一个数据了,你自己处理不要的放到新的list或什么中就可以获取到你要的东西了。 } 这个只能访问电脑上面的文件系统的文件夹及文件吧。url方式访问的情况下用这个可能不管用。 嗯是的,就不存在“一个URL下面的所有目录和文件信息”这么一种概念。一个 url “下面”本来就没什么目录和文件,只有具体化这个概念(比如说能搞懂具体基于什么系统协议的 url),有了深入一点的知识,才能具体说明到底是是那么的目录和文件。不过那个时候,(不管分别是哪一个系统的目录和文件概念)先看看具体的入门书,上面都有单独的讲解。 比如说访问 ftp,比如说访问 svn,等等,等你说明白具体是什么系统协议,学过具体系统设计或者接口原理,再编程比较好。 webbrowser 的问题,如何调用网页上的jsp函数 如何批量更新datatable中的数据? c# 如何划定一个矩形区域,然后设置此区域里的一些事件,比如leave啊,click啊等 c# 代码编辑器中的右键有没有快捷键? 修改磁盘上文件的摘要 关于控件在Panel中显示不完整的问题。 jquery怎么获取GridView的隐藏列 MD5加密 我写的打印程序怎么不能连续打印 请问各位大狭,用NEW创建的对象怎么自己删除!!急急!! C#调用oracle存储过程没有返回结果 列表递归展示
获取网页里所有链接(除了"../"),并保存A标签的文本和href
判断链接是目录链接(href 以 / 结尾)还是文件链接,为目录链接递归调用GetPage()方法
感谢回复,你的方法比较靠谱些,能发一份你哪个类给我试下吗?
你这里除了文件还有子目录,要管吗?
我看你有个UpdateList.xml为什么不读取一下看看内容?顺手做了一下,效果如下图:
string d = "http://120.*.*.171/SOFTUPDATE/";//你自己填自己ip地址,我这边根据截图随便填了已有的
System.Net.Http.HttpClient client = new System.Net.Http.HttpClient();
string z = "";
try
{
client.Timeout = TimeSpan.FromSeconds(3);//超时时间,这里根据网络情况自己考虑,我觉得3s足够了
z = client.GetAsync(d).Result.Content.ReadAsStringAsync().Result;
}
catch (Exception)
{
//throw;
}
var reg = @"(?is)<a[^>]*?href=(['""\s]?)(?<href>[^'""\s]*)\1[^>]*?>"; var mach = System.Text.RegularExpressions.Regex.Matches(z.ToLower(),reg,System.Text.RegularExpressions.RegexOptions.IgnoreCase); foreach (System.Text.RegularExpressions.Match m in mach)
{
Console.WriteLine(m.Groups["href"].Value);//这就是每一个数据了,你自己处理不要的放到新的list或什么中就可以获取到你要的东西了。
}
这个只能访问电脑上面的文件系统的文件夹及文件吧。url方式访问的情况下用这个可能不管用。
嗯是的,就不存在“一个URL下面的所有目录和文件信息”这么一种概念。一个 url “下面”本来就没什么目录和文件,只有具体化这个概念(比如说能搞懂具体基于什么系统协议的 url),有了深入一点的知识,才能具体说明到底是是那么的目录和文件。不过那个时候,(不管分别是哪一个系统的目录和文件概念)先看看具体的入门书,上面都有单独的讲解。