0

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

没有比减少气味更多的理由。

你和 BR,马蒂亚斯

4

2 回答 2

2

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

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;
    }

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

于 2016-11-30T12:57:07.133 回答
0

也许你可以试试SpecialFolder

Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);

或者

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
于 2016-11-30T12:56:08.060 回答