2012-04-06 70 views
0

我所试图做的是改变Mozilla Firefox浏览器的默认主页,我知道,网页存储在以下路径(在我的电脑)如何访问存储在未知文件夹名称上的文件?

C:\\Users\\JohnnyB\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\jmwb4bnw.default\\prefs.js 

的问题是jmwb4bnw.default文件夹中有一个每台计算机都有不同的名称,这可能导致我的文件由于文件夹名称不同而无法在其他计算机上工作。对我而言,一切正常,但对于其他计算机而言,由于文件路径错误,它不起作用。

我的问题是我怎么能不管访问jmwb4bnw.default文件夹,这是现在的名称,该文件夹是在Profiles文件夹中唯一的文件夹。

我使用的snippest代码是:(它的工作原理只是我的电脑上)

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文件夹中找到的子文件夹,而不管它是当前的名称?

最后:我怎样才能使上面的snippest代码的每一台计算机上运行?

(在上面的例子中,我们假设默认驱动器始终是C,和用户配置文件总是JohnnyB)

回答

3

您可以使用GetDirectories()函数:

string userName = "Sandbox"; 
string[] folders = Directory.GetDirectories("C:\\Users\\" + userName + "\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\", "*.default"); 

文件夹将包含所有子目录,这与.DEFAULT

在这种情况下结束文件夹[0 ]将是

C:\ Users \ Sandbox \ AppData \ Roaming \ Mozilla \ Firefox \ Profiles \ jmwb4bnw.default

+1

不要建立你的目录路径这样,否则你就会有问题与Windows的本地化版本。使用这个: Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)); – Fabske 2012-04-06 14:44:39

0

获取默认配置文件目录为mozilla firefox您应该在csharp中使用此代码。

string[] folders =  Directory.GetDirectories(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\Mozilla\\Firefox\\Profiles\\", "*.default"); 
string defaultprofile=folder[0]; 
相关问题