Я конвертирую приложение форм Windows в приложение WPF. Есть ли способ получить такие вещи, как путь запуска, путь данных приложения пользователя, общий путь данных приложения и т. Д., Не ссылаясь на System.Windows.Forms?
Ранее я использовал System.Windows.Forms.Application. StartupPath
, но объект System.Windows.Application.Current
не содержит ту же информацию.
Вы можете посмотреть System.Environment.GetFolderPath
.
Значения перечисления SpecialFolder
многочисленны:
ApplicationData CommonApplicationData CommonProgramFiles Cookies Desktop DesktopDirectory Favorites History InternetCache LocalApplicationData MyComputer MyDocuments MyMusic MyPictures Personal ProgramFiles Programs Recent SendTo StartMenu Startup System Templates
Это полезно?
Я понимаю и согласен с тем, что ссылка на System.Windows.Forms.dll
выглядит уродливо, но я думаю, что это лучше, чем уменьшить повторное использование кода и заново изобретать велосипед, а не просто еще одна ссылка.
Например, я использую System.Windows.Forms.Application.ProductVersion
в своих консольных приложениях, мне это не нравится, но я думаю, что это меньшее зло..
См. также это вопрос по SO
это поможет
для Application.StartupPath используйте AppDomain.CurrentDomain.BaseDirectory
http://msdn.microsoft.com/en-us/library/system.appdomain.basedirectory.aspx
Вы можете использовать класс Environment для получения всех типов системной информации. Для каталогов используйте метод Environment.GetFolderPath.
Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);