3

У меня есть приложение C++, которое использует переменную %tmp% (из функции GetTempPath () ). К сожалению, существует ошибка, из-за которой он не может обработать заголовок, который может появиться в пути к локальному временному каталогу пользователя, если он генерируется с использованием коротких имен файлов.

Я хотел бы сделать так, чтобы переменная окружения %tmp% не включала короткое имя файла, если это возможно.

В своем исследовании я наткнулся на следующие команды:

fsutil.exe 8dot3name set C: 1 
fsutil.exe 8dot3name strip /s /v C:\

Я выполнил оба из них, и первая команда успешно отключила короткие имена файлов. Однако вторая команда завершилась неудачно для приблизительно 2000 существующих коротких имен файлов, так как на них уже есть ссылки в реестре. Это нормально, но я действительно забочусь только об этой одной переменной среды, поэтому мне было интересно, есть ли способ, которым я мог бы принудительно удалить это короткое имя файла, или если, как я чувствую, это было бы, это не рекомендуется Есть ли способ заставить переменную среды использовать длинное имя файла? Я понимаю, что переменная %tmp% использует переменную %userprofile% , и что последняя на самом деле является ошибочной переменной, так что я понимаю, что мне нужно взглянуть на нее ..?

Любая помощь будет очень рекомендуется.

Ура!

1 ответ1

0

Может быть, я опоздал к вам, но, возможно, это поможет кому-то еще:

функция GetLongPathName() должна преобразовать короткое имя в длинное.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .