Как получить доступ к закладкам FireFox 3 во время работы FireFox? - PullRequest
1 голос
/ 09 марта 2009

Firefox 3 теперь сохраняет закладки в файле Sqlite с именем profiles.sqlite.

Этот файл заблокирован во время работы Firefox 3.

Я знаю, что есть файлы резервных копий, но они старые (записываются только при выходе из FF).

Я не хочу, чтобы пользователь устанавливал плагин.

Есть ли способ получить закладки во время работы FF 3?

Я занимаюсь разработкой в ​​C # 3.5 для Windows.

Ответы [ 2 ]

3 голосов
/ 10 марта 2009

SQL Lite - это встроенная база данных для однопользовательских приложений и не предназначена для многопользовательского доступа. См. Раздел «Ситуации, когда другая СУБД может работать лучше» их списка вопросов Когда использовать .

Кроме того, в тексте «High Concurrency» говорится: «SQLite использует блокировки чтения / записи для всего файла базы данных».

Итак, нет другого варианта. Создайте плагин.

2 голосов
/ 02 июля 2009

Я тоже застрял с той же проблемой, но после поиска по этому сайту и другим, придумал этот код для моего проекта http://www.codertakeout.com.

using System.Data.SQLite;  // need to install sqlite .net driver

String path_to_db = @"C:\Documents and Settings\Jeff\Application Data\Mozilla\Firefox\Profiles\yhwx4xco.default\places.sqlite";
String path_to_temp = System.IO.Path.GetTempFileName();

System.IO.File.Copy(path_to_db, path_to_temp, true);
SQLiteConnection sqlite_connection = new SQLiteConnection("Data Source=" + path_to_temp + ";Version=3;Compress=True;Read Only=True;");

SQLiteCommand sqlite_command = sqlite_connection.CreateCommand();

sqlite_connection.Open();

sqlite_command.CommandText = "SELECT moz_bookmarks.title,moz_places.url FROM moz_bookmarks LEFT JOIN moz_places WHERE moz_bookmarks.fk = moz_places.id AND moz_bookmarks.title != 'null' AND moz_places.url LIKE '%http%';";

SQLiteDataReader sqlite_datareader = sqlite_command.ExecuteReader();

while (sqlite_datareader.Read())
    {
        System.Console.WriteLine(sqlite_datareader[1]);
    }
sqlite_connection.Close();
System.IO.File.Delete(path_to_temp);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...