Как получить доступ к URL и названию закладки в .URL файлах? - PullRequest
2 голосов
/ 22 июня 2011

Я использую .NET 2.0 Visual Studio 2005 C #.

Приведенный ниже код получает имя файла избранного IE (закладки) из каталога, содержащего файлы .url с закладками

Пример

.. / users / favourites / blah.url

Но что мне действительно нужно, так это URL-адрес закладки в этом файле.

При проверке свойства файла ввкладка веб-документа, она показывает имя файла и 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);
       }
    }
}

Ответы [ 2 ]

5 голосов
/ 05 июня 2014

Текущий формат .url файла не установлен в камне и может измениться при любом обновлении ОС. Правильный способ анализа этих файлов - через COM-класс CLSID_InternetShortcut , используя IUniformResourceLocator и 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);
5 голосов
/ 22 июня 2011

Я открыл .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

Вы сможете легко проанализировать его, используя базовый StreamReader IO.

...