Отказ от ответственности: я проверил это на моем Windows 7 x64 под управлением Google Chrome 13.0.782.220 в данный момент.Информация, предоставленная здесь, является результатом моего собственного исследования и не является официальным способом или API для получения этой информации.Используйте на свой риск.Также представленная здесь методика может не работать с любым будущим выпуском, если Chrome изменит способ хранения этой информации.
Итак, Google Chrome использует SQLite для сохранения данных локального хранилища.Вы можете использовать управляемый драйвер System.Data.SQLite , чтобы прочитать его из приложения .NET.Если вы работаете в Windows 7 (для других не знаю, как это я могу протестировать), у вас будет следующая папка:
c:\Users\SOMEUSERNAME\AppData\Local\Google\Chrome\User Data\Default\Local Storage\
В этой папке будет несколько файлов с .localstorage
расширение.Каждый файл для разных сайтов.Например, для StackOverflow у меня есть http_stackoverflow.com_0.localstorage
, но, конечно, это наименование совершенно произвольно, и вы не можете на него полагаться.Каждый файл представляет собой базу данных SQLite.
Я заметил, что эта база данных содержит таблицу с именем ItemTable
с двумя строковыми столбцами с именами key
и value
.
Итак, чтобы прочитать значенияотправить запрос SQL просто:
class Program
{
static void Main()
{
using (var conn = new SQLiteConnection("Data Source=http_stackoverflow.com_0.localstorage;Version=3;"))
using (var cmd = conn.CreateCommand())
{
conn.Open();
cmd.CommandText = "SELECT key, value FROM ItemTable";
using (var reader = cmd.ExecuteReader())
{
while (reader.Read())
{
Console.WriteLine(
"key: {0}, value: {1}",
reader.GetString(reader.GetOrdinal("key")),
reader.GetString(reader.GetOrdinal("value"))
);
}
}
}
}
}