Функция PathCleanupSpec (shlobj_core.h)
[PathCleanupSpec доступен для использования в операционных системах, указанных в разделе Требования. Он может быть изменен или недоступен в последующих версиях.]
Удаляет недопустимые символы из имени файла или каталога. Применяет формат имени файла 8.3 на дисках, которые не поддерживают длинные имена файлов.
Синтаксис
int PathCleanupSpec(
[in, optional] PCWSTR pszDir,
[in, out] PWSTR pszSpec
);
Параметры
[in, optional] pszDir
Тип: PCWSTR
Указатель на буфер с пустым завершением, который содержит полный путь к каталогу, который будет содержать файл или каталог с именем в pszSpec. Длина пути не должна превышать MAX_PATH символов, включая завершающий символ NULL. Этот путь не изменяется.
Это значение может иметь значение NULL.
[in, out] pszSpec
Тип: PWSTR
Указатель на буфер, завершающийся значением NULL, который содержит имя файла или каталога для очистки. В случае с файлом включите расширение файла. Обратите внимание, что поскольку "" считается недопустимым символом и будет удален, этот буфер не может содержать путь более одного каталога.
При выходе буфер содержит строку, завершающуюся значением NULL, которая содержит очищенное имя.
Длина этого буфера должна быть не менее MAX_PATH символов, чтобы избежать переполнения буфера.
Возвращаемое значение
Тип: int
Возвращает одно или несколько из следующих значений.
Код возврата | Описание |
---|---|
|
Заменен один или несколько недопустимых символов. |
|
Удален один или несколько недопустимых символов. |
|
Возвращаемый путь усекается. |
|
Функция завершилась сбоем, так как входной путь, указанный в pszDir , слишком длинный, чтобы можно было сформировать допустимое имя файла из pszSpec. Когда этот флаг возвращается, он всегда сопровождается флагом PCS_FATAL. |
|
Очищенный путь не является допустимым именем файла. Этот флаг всегда возвращается вместе с PCS_PATHTOOLONG. |
Комментарии
Следующие символы считаются недопустимыми во всех именах.
\ / : * ? " < > |
Управляющие символы также считаются недопустимыми. Если длинные имена файлов не поддерживаются, символы с запятой (;) и запятые (,) также недопустимы.
Диск с именем в pszDir проверяется, поддерживает ли его файловая система длинные имена файлов. В противном случае имя в pszSpec усекается до формата 8.3 и возвращается PCS_TRUNCATED значение. Если pszDir имеет значение NULL, для определения поддержки длинных имен файлов используется диск, на котором установлена windows.
Если полный путь (число символов в пути в pszDir плюс количество символов в очищенном имени в pszSpec) превышает MAX_PATH –1 (с учетом завершающего символа NULL), функция возвращает PCS_PATHTOOLONG.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | shlobj_core.h (включая Shlobj.h) |
Библиотека | Shell32.lib |
DLL | Shell32.dll (версия 5.0 или более поздняя) |