2

我正在使用 .NET 2.0 Visual Studio 2005 C#。

下面的代码从包含书签的 .url 文件的目录中获取 IE 收藏夹(书签)的文件名

例子

../users/favorites/blah.url

但我真正想要的是该文件中带有书签的 URL。

检查文件属性时,在 Web 文档选项卡中,它会显示文件名和 URL。

如何从 C# 访问它?

代码

 //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);
       }
    }
}
4

2 回答 2

6

.url文件的当前格式不是一成不变的,可能会在任何操作系统更新中发生变化。解析这些文件的正确方法是通过CLSID_InternetShortcut COM coclass,使用IUniformResourceLocatorand IPropertyStorage。我刚刚将该功能添加到TvGameLauncher,您可以从InternetShortcut 文件夹(Apache 2.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);
于 2014-06-04T21:39:02.933 回答
5

.url 在 Notepad++ 中打开了一个,这就是我发现的。请注意,这是在 IE8 中生成的。 此页面详细介绍了.url(互联网快捷方式)文件的格式。

[DEFAULT]
BASEURL=http://www.google.com.au/
[{000214A0-0000-0000-C000-000000000046}]
Prop3=19,2
[InternetShortcut]
URL=http://www.google.com.au/
IDList=
IconFile=http://www.google.com.au/favicon.ico
IconIndex=1

您应该能够使用基本StreamReaderIO 轻松解析它。

于 2011-06-22T02:11:09.613 回答