【问题标题】:How to access a file which is stored on a unknown folder name?如何访问存储在未知文件夹名称中的文件?
【发布时间】:2012-04-06 14:10:11
【问题描述】:

我要做的是更改Mozilla Firefox的默认主页,我知道主页存储在以下路径(在我的电脑中)

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

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

我的问题是我如何访问jmwb4bnw.default 文件夹,不管它的当前名称是什么,这个文件夹是 Profiles 文件夹下的唯一文件夹。

我使用的最简单的代码是:(它只适用于我的电脑)

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)

【问题讨论】:

    标签: c# .net


    【解决方案1】:

    您可以使用 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

    【讨论】:

    • 不要以这种方式构建目录路径,否则本地化版本的 Windows 会出现问题。使用这个:Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData));
    【解决方案2】:

    我想您只期望一个配置文件? 否则,您将遇到另一个问题:查找与用户配置文件对应的目录。

    在这种情况下,只需列出所有目录并取第一个。这应该可以帮助您: http://msdn.microsoft.com/en-us/library/6ff71z1w.aspx

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 2019-06-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-08-21
        • 2018-09-10
        • 1970-01-01
        相关资源
        最近更新 更多