我写了一些代码来读取非托管的html文件。这些文件始终位于硬盘驱动器或本地驱动器上,不在Web浏览器中托管。
我需要找到html文件中的href文件。例如,我可能会得到一个如下所示的href:
file://myserver/mp3s/greatsong.mp3
由于我需要使用c#代码来获取文件,因此我使用LocalPath属性:
var path = new Uri("file://myserver/mp3s/greatsong.mp3").LocalPath;
Console.WriteLine(path);
输出正是我想要的,这就是:
\\myserver\mp3s\greatsong.mp3
以前的代码处理外部网络驱动器,但有时网址会处理本地驱动器,如下所示:
../../greatsong.mp3
如何获取此mp3文件所在的文件夹名称?我可以假设该文件位于html文件的同一驱动器位置,这意味着如果html文件位于c:\temp\files\myhtml\myfile.htm
中,则greatsong.mp3文件位于c:\驱动器中。
我能想到获得文件夹名称的最好方法是读取../
的每个实例来遍历目录结构,但这看起来很笨拙。
我可以使用哪种方法看起来像这样吗?
var whatIWant = new Uri("../../greatsong.mp3", "C:\").LocalPath;
whatIWant的输出:
C:\temp\greatsong.mp3
感谢。
答案 0 :(得分:0)
您可以使用此代码获取链接/ foldername:
HtmlWeb hw = new HtmlWeb();
HtmlDocument doc = hw.Load(/* url */);
foreach(HtmlNode link in doc.DocumentNode.SelectNodes("//a[@href]"))
{
}