获取没有Forms-namespace的应用程序appdata路径

时间:2016-11-25 18:44:56

标签: c# .net forms appdata userappdatapath

我想获取当前应用程序的AppData路径。我曾经使用Application.UserAppDataPath执行此操作,但它位于System.Windows.Forms命名空间中,我想摆脱它。无论如何,我在存储库层和它的wpf应用程序中都需要它。

没有理由比减少气味了。

你和BR, 的Matthias

2 个答案:

答案 0 :(得分:1)

也许您可以使用SpecialFolder进行尝试?

Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);

答案 1 :(得分:0)

我刚看了一下 System.Windows.Forms.dll 的源代码。你可以在那里找到:

Disassembly of Application.LocaluserAppDataPath

当我开始在一个类中自己克隆这个代码时,我有几个属性,其他程序集,反射,帮助程序aso后失败了。所以我自己写了一篇非常简单的课程。

    public static string LocalUserAppDataPath
    {
        get
        {
            return GetDataPath(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData));
        }
    }

    private static string GetDataPath(string basePath)
    {
        string format = @"{0}\{1}\{2}\{3}";
        string companyName = "YOUR_COMPANYNAME";
        string productName = "PRODUCTNAME";
        string productVersion = "PRODUCTVERSION";
        object[] args = new object[] { basePath, companyName, productName, productVersion };
        string path = string.Format(CultureInfo.CurrentCulture, format, args);

        return path;
    }

我知道有一些硬编码字符串。但是现在,参考你给出的限制,我会试试这个代码。