C# 如何访问.URL文件中的URL和书签标题?
我正在使用.NET2.0VisualStudio2005C 下面的代码从包含bookmarked.url文件的目录中获取IE收藏夹(书签)的文件名 范例 ../users/favorites/blah.url 但我真正想要的是文件中带有书签的URL 当检查文件属性时,在web文档选项卡中,它显示文件名和URL 如何从C#访问它 代码C# 如何访问.URL文件中的URL和书签标题?,c#,.net,internet-explorer,url,favorites,C#,.net,Internet Explorer,Url,Favorites,我正在使用.NET2.0VisualStudio2005C 下面的代码从包含bookmarked.url文件的目录中获取IE收藏夹(书签)的文件名 范例 ../users/favorites/blah.url 但我真正想要的是文件中带有书签的URL 当检查文件属性时,在web文档选项卡中,它显示文件名和URL 如何从C#访问它 代码 //the code below just get String like "..../users/favorites/blah.url" //call the
//the code below just get String like "..../users/favorites/blah.url"
//call the method with the folder path:
//GetFavoriteFiles(Environment.GetFolderPath(Environment.SpecialFolder.Favorites));
private List<String> favFiles = new List<String>();
private void GetFavoriteFiles(String folder)
{
String[] favs = Directory.GetFiles(folder);
favFiles.AddRange(favs);
String[] folders = Directory.GetDirectories(folder);
if(folders != null)
{
foreach(String s in folders)
{
GetFavoriteFiles(s);
}
}
}
//下面的代码只得到字符串“…/users/favorites/blah.url”
//使用文件夹路径调用该方法:
//GetFavoriteFiles(Environment.GetFolderPath(Environment.SpecialFolder.Favorites));
私有列表favFiles=新列表();
私有void GetFavoriteFiles(字符串文件夹)
{
字符串[]favs=Directory.GetFiles(文件夹);
favFiles.AddRange(favs);
String[]folders=Directory.GetDirectories(文件夹);
如果(文件夹!=null)
{
foreach(文件夹中的字符串)
{
获取收藏夹文件;
}
}
}
我在记事本++中打开了一个.url
,这就是我找到的。注意,这是在IE8中生成的。
详细查看.url
(internet快捷方式)文件的格式
您应该能够使用basic
StreamReader
IO轻松解析此文件。当前.url
文件的格式是,并且可以在任何操作系统更新中更改。解析这些文件的正确方法是通过,使用IUniformResourceLocator
和IPropertyStorage
。我刚刚将该功能添加到,您可以从(Apache2.0许可证)获取代码
示例用法:
var shortcut = new InternetShortcutManaged(@"MyShortcut.url");
Console.WriteLine("URL: " + shortcut.Url);
Console.WriteLine("Working dir: " + shortcut.WorkingDir);
Console.WriteLine("Icon file: " + shortcut.IconFile);
Console.WriteLine("Icon index: " + shortcut.IconIndex);
Console.WriteLine("Name: " + shortcut.Name);
Console.WriteLine("Description: " + shortcut.Description);
Console.WriteLine("Comment: " + shortcut.Comment);
哦这是我首先应该做的,谢谢,我会尝试一下。请注意,此格式是一个实现细节,不能保证保持原样。有关用于解析internet快捷方式的正确API,请参阅我的答案。如果此答案引用了名称空间,并提供了有关使用代码的内容和原因的更多信息,我非常希望得到此答案。@Chris我链接到了特定的MSDN文章,详细介绍了所有与internet快捷方式相关的COM信息。我还解释了为什么首选此方法,即当前INI格式是一种实现细节,可以在任何时候更改,从而使旧的解析代码变得无用。最后,我添加了一个链接,指向可以按原样获取和使用的开放源代码,几乎没有许可证限制,甚至还提供了一个小示例,说明如何使用它。你还能问什么?
var shortcut = new InternetShortcutManaged(@"MyShortcut.url");
Console.WriteLine("URL: " + shortcut.Url);
Console.WriteLine("Working dir: " + shortcut.WorkingDir);
Console.WriteLine("Icon file: " + shortcut.IconFile);
Console.WriteLine("Icon index: " + shortcut.IconIndex);
Console.WriteLine("Name: " + shortcut.Name);
Console.WriteLine("Description: " + shortcut.Description);
Console.WriteLine("Comment: " + shortcut.Comment);