Winforms和控制台应用程序可以使用Application.UserAppDataPath。如果我想要从dll构建相同的路径,该怎么办?我该怎么做呢?我知道Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)会是一个开始。
发布于 2009-11-15 18:21:12
您可以从DLL使用Application.UserAppDataPath -只需从DLL项目添加对System.Windows.Forms程序集的引用即可。
但是,请注意,如果您的动态链接库在Windows Service或服务器应用程序(如ASP.NET )中使用,则它可能在没有配置文件的服务帐户下运行-在这种情况下,UserAppDataPath将不存在。这可能是应用程序类位于System.Windows.Forms命名空间中的主要原因。
发布于 2011-03-01 08:27:02
这是一个可以做你想做的事情的方法。这在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;
}发布于 2009-11-15 15:32:55
如果您没有可以使用的应用程序对象,那么您可以从前面提到的获取"ApplicationData“文件夹路径开始,然后将默认的文件夹结构附加到该路径上。
公司名称/产品名称
是默认的附加项目
https://stackoverflow.com/questions/1736882
复制相似问题