On Aug 22, 2:52 pm, "pedrito" <pixbypedrito at yahoo.comwrote:
I have a small library on SourceForge for reading cookie files from IE and
Firefox:http://ncookiereader.sourceforge.net/
throw new NotImplementedE xception("No support for finding the cookie path yet.");
For what it's worth, here's what I did once to find the Firefox cookie
path (using the default profile of the current user):
private const string PATH_PROFILES_I NI = @"%APPDATA%\Moz illa\Firefox
\profiles.ini";
private const string PATH_COOKIES_TX T = @"%APPDATA%\Moz illa\Firefox\
%PROFILE%\cooki es.txt";
....
string pathAppData =
Environment.Get EnvironmentVari able("APPDATA") ;
string profilesIniPath = PATH_PROFILES_I NI.Replace("%AP PDATA%",
pathAppData);
string profileDir = null;
// Find default profile in profiles.ini
Dictionary<stri ng, string>[] firefoxProfiles Ini =
ParseIniFile(pr ofilesIniPath);
foreach (Dictionary<str ing, stringiniGroup in
firefoxProfiles Ini) {
if (iniGroup.Conta insKey("Default ") && iniGroup["Default"] ==
"1")
profileDir = iniGroup["Path"];
}
_cookiePath = PATH_COOKIES_TX T.Replace("%PRO FILE%",
profileDir).Rep lace("%APPDATA% ", pathAppData);
....
const string INI_PATTERN = @"\s*\[([^\]]*)\]\r?\n([^\[]*)";
public static Dictionary<stri ng, string>[] ParseIniFile(st ring
IniFilePath) {
List<Dictionary <string, string>dictList = new
List<Dictionary <string, string>>();
string iniContents = File.ReadAllTex t(IniFilePath);
MatchCollection mc = Regex.Matches(i niContents, INI_PATTERN,
RegexOptions.Si ngleline);
foreach (Match m in mc) {
Dictionary<stri ng, stringdict = new Dictionary<stri ng,
string>();
string iniGroupName = m.Groups[1].Value.Trim();
dict.Add("_name ", iniGroupName);
string[] newlines = { "\n", "\r", "\r\n" };
foreach (string keyvalue in m.Groups[2].Value.Split(ne wlines,
StringSplitOpti ons.RemoveEmpty Entries)) {
if (keyvalue.Conta ins("=")) {
dict.Add(keyval ue.Split('=')[0].Trim(),
keyvalue.Split( '=')[1].Trim());
}
}
dictList.Add(di ct);
}
return dictList.ToArra y();
}