我想要做的是更改Mozilla Firefox的默认主页,我知道主页存储在以下路径中(在我的计算机中)
C:\\Users\\JohnnyB\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\jmwb4bnw.default\\prefs.js
问题是jmwb4bnw.default
文件夹在每台计算机上都有不同的名称,由于文件夹名称不同,可能导致我的文件无法在其他计算机上运行。对我来说,一切都很好,但对于其他计算机,由于文件路径错误,它无法正常工作。
我的问题是如何访问jmwb4bnw.default
文件夹,无论其当前名称如何,此文件夹是“个人档案”文件夹下的唯一文件夹。
我使用的最常用代码是:(仅适用于我的计算机)
string ff_filepath = "C:\\Users\\Sandbox\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\jmwb4bnw.default\\prefs.js";
string myLine = "user_pref('browser.startup.homepage', 'www.monde-presse.com');";
StreamWriter sw;
sw = File.AppendText(ff_filepath);
sw.WriteLine(myLine);
sw.Close();
如何使上面的代码适用于每台计算机?
或者用这种语言,如何告诉C#访问jmwb4bnw.default
文件夹而不管它的名字。
注意:\ Profiles \文件夹不包含任何文件,只有一个名为jmwb4bnw.default
的文件夹,也许有人告诉C#访问在Profiles文件夹中找到的子文件夹,而不管它的当前名称是什么?
最后:如何使上述代码能够在每台计算机上运行?
(在上面的示例中,我们假设默认驱动器始终为C,用户配置文件始终为JohnnyB)
答案 0 :(得分:3)
您可以使用GetDirectories()函数:
string userName = "Sandbox";
string[] folders = Directory.GetDirectories("C:\\Users\\" + userName + "\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\", "*.default");
文件夹将包含所有子目录,以 .default
结尾在这种情况下文件夹[0] 将是
C:\用户\沙箱\应用程序数据\漫游\ Mozilla的\火狐\概况\ jmwb4bnw.default
答案 1 :(得分:0)
我想你只期望一个个人资料? 否则,您将遇到另一个问题:找到与用户配置文件相对应的目录。
在这种情况下,只需列出所有目录并选择第一个目录。这应该可以帮到你: http://msdn.microsoft.com/en-us/library/6ff71z1w.aspx
答案 2 :(得分:0)
获取mozilla firefox的默认配置文件目录,您应该在csharp中使用此代码。
string[] folders = Directory.GetDirectories(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\Mozilla\\Firefox\\Profiles\\", "*.default");
string defaultprofile=folder[0];