Winforms和控制台应用程序可以使用Application.UserAppDataPath
。
如果我想从dll构建相同的路径怎么办?我怎样才能做到这一点?
我知道Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
将是开始......
答案 0 :(得分:1)
这是一种可以做你想要的方法。这适用于WPF应用程序,无需添加System.Windows.Forms.dll
public string GetUserAppDataPath()
{
string path = string.Empty;
System.Reflection.Assembly assm;
try
{
assm = System.Reflection.Assembly.GetEntryAssembly();
Type at = typeof(System.Reflection.AssemblyCompanyAttribute);
object[] r = assm.GetCustomAttributes(at, false);
System.Reflection.AssemblyCompanyAttribute ct = ((System.Reflection.AssemblyCompanyAttribute)(r[0]));
path = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
path += @"\" + ct.Company;
path += @"\" + assm.GetName().Version.ToString();
}
catch
{
}
return path;
}
答案 1 :(得分:0)
好吧,如果你没有可以使用的应用程序对象,你可以从你提到的内容开始获取“ApplicationData”文件夹路径,然后将默认文件夹结构附加到该路径上。
公司名称/产品名称
是默认的附加项目
答案 2 :(得分:0)
您可以使用DLL中的Application.UserAppDataPath - 只需从DLL项目添加对System.Windows.Forms程序集的引用。
但请注意,如果您的DLL在Windows服务或服务器应用程序(如ASP.NET)中使用,则它可能在没有配置文件的服务帐户下运行 - 在这种情况下,UserAppDataPath将不存在。这可能是Application类在System.Windows.Forms命名空间中的主要原因。