0

私がやろうとしているのは、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();

上記のコードをすべてのコンピューターで機能させる方法は?jmwb4bnw.defaultまたは、そのような言語で、名前に関係なくフォルダー にアクセスするようにC#に指示する方法。

注:\ Profiles \フォルダーにはファイルが含まれていません。また、という名前のフォルダーが1つだけありますjmwb4bnw.default。おそらく、現在の名前に関係なく、ProfilesフォルダーにあるサブフォルダーにアクセスするようにC#に指示する方法がありますか?

最後に:上記のコードをすべてのコンピューターで動作させるためにどのようにすればよいですか?

(上記の例では、デフォルトのドライブは常にCであり、ユーザープロファイルは常にJohnnyBであると想定しています)

4

3 に答える 3

3

GetDirectories()関数を使用できます。

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

フォルダには、 .defaultで終わるすべてのサブディレクトリが含まれます

この場合、folders[0]

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

于 2012-04-06T14:18:03.227 に答える
0

プロファイルは1つだけだと思いますか?そうしないと、別の問題が発生します。ユーザープロファイルに対応するディレクトリを見つけることです。

この場合、すべてのディレクトリをリストして、最初のディレクトリを取得します。これはあなたを助けるはずです:http: //msdn.microsoft.com/en-us/library/6ff71z1w.aspx

于 2012-04-06T14:17:36.027 に答える
0

mozilla firefoxのデフォルトのプロファイルディレクトリを取得するには、csharpでこのコードを使用する必要があります。

string[] folders =      Directory.GetDirectories(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\Mozilla\\Firefox\\Profiles\\", "*.default");
string defaultprofile=folder[0];
于 2012-07-18T05:59:12.930 に答える