Как я могу получить путь папки “Application Data” текущего пользователя?

Редактировать: Как отмечено в комментариях, фактическая проблема, затронутая в этом вопросе, на самом деле является ошибкой в ​​IntelliJ 15 / WebStorm 11 (см. https://youtrack.jetbrains.com/issue/WEB-18768 ). Я оставляю ответ ниже, потому что многие люди приходят сюда в поисках предложенного решения.

Принятый ответ - кувалдный подход к решению проблемы. Лучшее решение - включить библиотеку mocha-DefiniteTyped для тестовой директории. Это не только устранит ошибочную проверку, но и обеспечит лучшую подсветку синтаксиса.

Из описания проверки:

При использовании библиотек, которые определяют свои собственные глобальные символы вне видимого кода JavaScript (например, describe() в Mocha), рекомендуется добавить соответствующий Файл определения типа TypeScript как библиотека JavaScript в Предпочтения | Языки и Рамки | JavaScript | Библиотеки.

Перейдите к разделу настроек, указанному выше, «Настройки | Языки и Рамки | JavaScript | Библиотеки »и проверьте, есть ли в списке библиотека mocha-DefinitiveTyped.

Если @types/mocha (раньше назывался mocha-DefinitelyTyped) нет в списке, нажмите кнопку Download…, найдите «mocha» в разделе «Заглушки сообщества TypeScript», выберите его и нажмите «Загрузить и установить» :

‘mocha’ library to import, shown in the Download Library window

Библиотека имеет в списке только mocha, но преобразуется в @types/mocha (до начала 2019 г., он будет преобразован в mocha-DefinitelyTyped) после импорта.

Как только у вас есть mocha-DefiniteTyped, снимите флажок «Включено». Если оставить его полностью проверенным, это позволит сделать это глобально, даже вне тестов, что будет неточным. Вместо этого мы сделаем так, чтобы его область действия была включена только в вашем тестовом каталоге. Нажмите кнопку Manage Scopes…, найдите тестовый каталог, щелкните столбец «Библиотека» и выберите запись «mocha-DefinitiveTyped». Смотрите скриншот ниже.

screenshot of the JavaScript Libraries Usage Scopes preferences window

36
задан vela 4 April 2019 в 11:31
поделиться

5 ответов

Для этого посмотрите на сочетание Environment.GetFolderPath и Environment.SpecialFolder .

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
68
ответ дан 27 November 2019 в 05:25
поделиться

В зависимости от того, что вы делаете, вы также можете посмотреть

Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)

. Если пользователь находится в домене, он будет храниться только в его локальной папке AppData и не синхронизированы с их перемещаемым профилем.

17
ответ дан 27 November 2019 в 05:25
поделиться

Имейте посмотрите на Environment.SpecialFolders

Environment.SpecialFolder.ApplicationData;
Environment.SpecialFolder.System

, который также поможет вам обойти требования к имени пользователя.

4
ответ дан 27 November 2019 в 05:25
поделиться

Попробуйте следующее:

string filePath = Environment.GetFolderPath(System.Environment.SpecialFolder.ApplicationData);
2
ответ дан 27 November 2019 в 05:25
поделиться

Взгляните на класс System.Environment, его свойства и методы, например:

string systemDir = System.Environment.SystemDirectory;
string docs = System.Environment.GetFolderPath(
    System.Environment.SpecialFolder.MyDocuments));

string systemDrive = System.IO.Path.GetPathRoot(systemDir);

Первый возвращает " C: \ Windows \ system32 ", например а второй " C: \ Documents and Settings \ USERNAME \ My Documents ".

3
ответ дан 27 November 2019 в 05:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: