获取没有 Forms-namespace 的应用程序 appdata 路径
get applications appdata path without Forms-namespace
我想获取当前应用程序的 AppData 路径。我曾经使用 Application.UserAppDataPath 执行此操作,但它位于 System.Windows.Forms
命名空间中,我想摆脱它。无论如何,我在存储库层和它的 wpf 应用程序中都需要它。
没有比减少气味更多的理由了。
你和BR,
马蒂亚斯
也许你可以用 SpecialFolder
试试?
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
或
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
我刚刚查看了 System.Windows.Forms.dll 的源代码。在那里你可以找到这个:
当我自己开始在 class 中克隆此代码时,我在拥有多个属性、其他程序集、反射、帮助程序 aso 后失败了。所以我自己写了一个非常简单class。
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;
}
我知道有一些硬编码字符串。但是现在,考虑到您给定的限制,我会尝试一下这段代码。
我想获取当前应用程序的 AppData 路径。我曾经使用 Application.UserAppDataPath 执行此操作,但它位于 System.Windows.Forms
命名空间中,我想摆脱它。无论如何,我在存储库层和它的 wpf 应用程序中都需要它。
没有比减少气味更多的理由了。
你和BR, 马蒂亚斯
也许你可以用 SpecialFolder
试试?
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
或
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
我刚刚查看了 System.Windows.Forms.dll 的源代码。在那里你可以找到这个:
当我自己开始在 class 中克隆此代码时,我在拥有多个属性、其他程序集、反射、帮助程序 aso 后失败了。所以我自己写了一个非常简单class。
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;
}
我知道有一些硬编码字符串。但是现在,考虑到您给定的限制,我会尝试一下这段代码。