Winforms和控制檯應用程序可以使用Application.UserAppDataPath
。 如果我想從dll構建相同的路徑,該怎麼辦?我怎樣才能做到這一點? 我知道,Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
將是開始...如何在類庫(不具有Application對象)內部構建Application.UserAppDataPath?
1
A
回答
0
可以使用Application.UserAppDataPath從DLL - 只需從DLL項目添加到System.Windows.Forms程序集的引用。
但是請注意,如果您的DLL在Windows服務或服務器應用程序(如ASP.NET)中使用,它可能在沒有配置文件的服務帳戶下運行 - 在這種情況下,UserAppDataPath將不存在。這可能是Application類在System.Windows.Forms命名空間中的主要原因。
0
那麼,如果你沒有一個你可以使用的應用程序對象,你將開始與你提到的獲得「ApplicationData」文件夾路徑,然後將默認文件夾結構追加到該路徑。
公司名稱/產品名稱
是默認的其他項目
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. 如何構建一個具有抽象類類型字段的對象?
- 2. 如何通過反射創建一個具有內部構造函數的類的對象實例?
- 3. 在不同的類中創建內部類對象數組
- 4. 如何創建對象,如果該類的構造函數是內部的
- 5. 如何檢查對象是Application對象
- 6. 如何構建存儲庫具有部件數組的實體
- 7. 創建模板內部類對象
- 8. 具有與內部構造
- 9. Spring Boot Application如何在內部工作?
- 10. 不同類型的對象的創建與具有參數構造在C++
- 11. 從其他類創建私有內部類的對象
- 12. 如何使用內部對象構造對象
- 13. 如何在嵌套類的內部類中構造和使用對象?
- 14. 如何構建具有很多屬性的對象?
- 15. 構建有對象
- 16. 如何對象轉換爲JSON對象時,有內部對象
- 17. LINQ,GroupBy具有對象類型的字段的內部值
- 18. 如何在內存堆中存在java內部類對象?
- 19. 領域 - 如何構建具有多種類型對象的提要?
- 20. 具有不同#define的IAR構建庫
- 21. 如何使用python在循環內創建具有不同名稱的對象?
- 22. 如何計算創建內部類的對象數
- 23. 如何用Java創建內部類對象的多維數組
- 24. 抽象類如何具有引用而不是對象?
- 25. 遍歷內部對象對象與具有正則表達式
- 26. 的PriorityQueue從一個內部類對象 - 找不到構造
- 27. 具有LINQ,部分類和抽象類的類結構
- 28. 如何從C++的內部類訪問外部類對象
- 29. 如何構建具有DNX
- 30. 如何構建com.netflix.client.http.httpresponse對象