私は現在2つの方法を知っています:
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
と
Application.UserAppDataPath
どちらも同じですか?どちらか一方を使用する必要がありますか?あなたの答えを裏付けるためにいくつかの事実を提供してください。
Application.UserAppDataPath
BasePath \ CompanyName \ ProductName \ ProductVersionを返します。ここで、BasePathはApplicationDataディレクトリです。したがって、すべての追加のサブディレクトリが必要ない場合は、を使用する必要がありますEnvironment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
。
Application は 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));
}
}