2009-03-09 11 views
1

Firefox 3は、profiles.sqliteというSqliteファイルにブックマークを保存するようになりました。FireFoxの実行中にFireFox 3ブックマークにアクセスするにはどうすればよいですか?

このファイルは、Firefox 3の実行中はロックされています。

私はバックアップファイルがあることは知っていますが、古いものです(FF終了時にのみ書き込まれます)。

私はプラグインをインストールする必要はありません。

FF3の実行中にブックマークを取得する方法はありますか?

私はC#3.5 for Windowsで開発中です。

答えて

2

私も同じ問題を抱えていましたが、このサイトや他のサイトを検索した後、私のプロジェクト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は、シングルユーザーアプリケーション用の組み込みデータベースであり、マルチユーザーアクセス用には構築されていません。 「When To Use question list」の「別のRDBMSがうまく動作する状況」の節を参照してください。

また、「高同時実行性」のテキストには、「SQLiteはデータベースファイル全体で読み取り/書き込みロックを使用しています。

いいえ、別のオプションはありません。プラグインをビルドします。

関連する問題