Используя это:
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
Я получаю такой вывод:
"C:\\Documents and Settings\\[USER]\\Application Data"
Как я могу получить корневой каталог всех пользователей? то есть:
"C:\\Documents and Settings\\[USER]\\"
c#
windows
environment
special-folders
цзюань
источник
источник
Ответы:
Возможно, это будет хорошее решение: учитывая, Vista / Win7 или XP, и без использования переменных окружения:
Хотя использование переменной окружения намного понятнее.
источник
Пытаться:
Редактировать:
Если вы используете версию .NET 4 или выше, вы можете использовать
Environment.SpecialFolder
перечисление:источник
Вы можете получить путь к UserProfile вот так:
Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);
источник
Также очень полезно при исследовании
Environment.SpecialFolder
enum. Используйте LINQPad или создайте решение и выполните этот код:Вот результат на моей машине:
(«fisch» - это первые 5 букв моей фамилии. Это имя пользователя назначается при входе в учетную запись Microsoft.)
источник
Попытка перейти вверх от именованной папки SpecialFolder чревата проблемами. Существует множество причин, по которым папки не будут там, где вы их ожидаете: пользователи могут перемещать их самостоятельно, объект групповой политики может перемещать их, перенаправление папок на пути UNC и т. Д.
Использование переменной среды для пользовательского профиля должно отражать любую из этих возможных проблем.
источник
Пытаться:
источник
Возиться с переменными среды или жестко заданными смещениями родительских папок никогда не будет хорошей идеей, когда есть API для получения нужной информации, вызовите
SHGetSpecialFolderPath(...,CSIDL_PROFILE,...)
источник
источник
вы можете использовать следующий код:
дополнительную информацию см .: Получить текущий путь к каталогу в WinXP и WinCE с C #
источник