我目前知道两种方法:
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
和
Application.UserAppDataPath
他们俩都一样吗?我应该使用一个吗?请提供一些事实来支持您的答案。
答案 0 :(得分:2)
Application.UserAppDataPath
返回BasePath \ CompanyName \ ProductName \ ProductVersion,其中BasePath是ApplicationData目录。因此,如果您不想要所有额外的子目录,则应使用Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
。
答案 1 :(得分:2)
应用程序是WinForms类。因此,如果您的应用程序不是WinForms应用程序,则无法使用Application.UserAppDataPath。
此外,如果您反编译System.Windows.Forms程序集,您可以看到Application.UserAppDataPath属性使用Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)方法。
public static string UserAppDataPath
{
get
{
try
{
if (ApplicationDeployment.IsNetworkDeployed)
{
string str = AppDomain.CurrentDomain.GetData("DataDirectory") as string;
if (str != null)
return str;
}
}
catch (Exception ex)
{
if (System.Windows.Forms.ClientUtils.IsSecurityOrCriticalException(ex))
throw;
}
return Application.GetDataPath(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData));
}
}