2009-03-09 4 views
1

Firefox 3 speichert nun Lesezeichen in einer SQLite-Datei namens profiles.sqlite.Wie greife ich auf FireFox 3-Lesezeichen zu, während FireFox läuft?

Diese Datei ist gesperrt, während Firefox 3 ausgeführt wird.

Ich weiß, dass es Backup-Dateien gibt, aber sie sind alt (nur geschrieben, wenn FF beendet).

Ich möchte nicht, dass der Benutzer ein Plug-in installieren muss.

Gibt es eine Möglichkeit, die Lesezeichen zu holen, während FF 3 läuft?

Ich entwickle in C# 3.5 für Windows.

Antwort

2

Ich auch mit dem gleichen Problem stecken geblieben, aber nach der Suche auf dieser Seite und andere, kam mit diesem Code für mein Projekt 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); 
3

SQL Lite ist eine eingebettete Datenbank für Einzelbenutzeranwendungen und nicht für den Zugriff durch mehrere Benutzer konzipiert. Siehe den Abschnitt mit dem Titel "Situationen, in denen ein anderes RDBMS besser funktionieren kann" von When To Use question list.

Auch der Text unter "hohe Parallelität" besagt "SQLite verwendet Lese-/Schreibsperre für die gesamte Datenbankdatei."

Also, Nein, es gibt keine andere Option. Erstellen Sie ein Plugin.

Verwandte Themen