Default locations are:
Windows XP
Google Chrome: C:Documents and Settings<username>Local SettingsApplication DataGoogleChromeUser DataDefault
Chromium: C:Documents and Settings<username>Local SettingsApplication DataChromiumUser DataDefault
Vista / 7
Google Chrome: C:Users<username>AppDataLocalGoogleChromeUser DataDefault
Chromium: C:Users<username>AppDataLocalChromiumUser DataDefault
Mac OS X
Google Chrome: ~/Library/Application Support/Google/Chrome/Default
Chromium: ~/Library/Application Support/Chromium/Default
Linux
Google Chrome: ~/.config/google-chrome/Default
Chromium: ~/.config/chromium/Default
Source: Google Chromium user data directory default locations. ( link )
In amount of time I spent on writing this, this was the shortest and most robust example I could think of (I completely ignored the fact, that user could use different location then default). Must say, it was bit trickier, then I thought.
In this example, I try using the default location directory, and finding the preference file where the "Home" is stored. It is stored in JSon format, so I deserialize the data that I am interested, and print it out.
Win 7 Example:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
//References -> Add Reference -> "System.Runtime.Serialization" Add
using System.Runtime.Serialization;
using System.Runtime.Serialization.Json;
namespace test {
class Program {
[DataContract]
public class Mdata {
[DataMember(Name = "homepage")]
public String homepage { get; private set; }
[DataMember(Name = "homepage_is_newtabpage")]
public Boolean isNewTab { get; private set; }
public Mdata() { }
public Mdata(String data) {
homepage = data;
}
}
public static Mdata FindData(String json) {
Mdata deserializedData = new Mdata();
MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(json));
DataContractJsonSerializer ser = new DataContractJsonSerializer(deserializedData.GetType());
deserializedData = ser.ReadObject(ms) as Mdata;
ms.Close();
return deserializedData;
}
static void Main(string[] args) {
const int LikeWin7 = 6;
OperatingSystem osInfo = Environment.OSVersion;
DirectoryInfo strDirectory;
String path=null, file=null, data;
if (osInfo.Platform.Equals(System.PlatformID.Win32NT))
if (osInfo.Version.Major == LikeWin7)
path = Environment.GetEnvironmentVariable("LocalAppData") +
@"GoogleChromeUser DataDefault";
if (path == null || path.Length == 0)
throw new ArgumentNullException("Fail. Bad OS.");
if (!(strDirectory = new DirectoryInfo(path)).Exists)
throw new DirectoryNotFoundException("Fail. The directory was not fund");
if (!new FileInfo(file = Directory.GetFiles(strDirectory.FullName, "Preferences*")[0]).Exists)
throw new FileNotFoundException("Fail. The file was not found.", file);
Mdata info = FindData(data = System.IO.File.ReadAllText(file));
Console.WriteLine(info.homepage);
Console.WriteLine(info.isNewTab);
}
}
}
Example output for Me:
chrome://newtab
True
Hope I get at least 1 up vote :P
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…