Compartir a través de


Función PathCleanupSpec (shlobj_core.h)

[PathCleanupSpec está disponible para su uso en los sistemas operativos especificados en la sección Requisitos. Puede modificarse o no estar disponible en versiones posteriores.

Quita caracteres no válidos de un nombre de archivo o directorio. Aplica el formato de nombre de archivo 8.3 en unidades que no admiten nombres de archivo largos.

Sintaxis

int PathCleanupSpec(
  [in, optional] PCWSTR pszDir,
  [in, out]      PWSTR  pszSpec
);

Parámetros

[in, optional] pszDir

Tipo: PCWSTR

Puntero a un búfer terminado en null que contiene la ruta de acceso completa del directorio que contendrá el archivo o directorio denominado en pszSpec. La ruta de acceso no debe superar MAX_PATH caracteres de longitud, incluido el carácter nulo de terminación. Esta ruta de acceso no se modifica.

Este valor puede ser NULL.

[in, out] pszSpec

Tipo: PWSTR

Puntero a un búfer terminado en null que contiene el nombre de archivo o directorio que se va a limpiar. En el caso de un archivo, incluya la extensión del archivo. Tenga en cuenta que, dado que '' se considera un carácter no válido y se quitará, este búfer no puede contener una ruta de acceso más de un directorio profundo.

Al salir, el búfer contiene una cadena terminada en null que incluye el nombre limpio.

Este búfer debe tener al menos MAX_PATH caracteres de longitud para evitar la posibilidad de que se supere un búfer.

Valor devuelto

Tipo: int

Devuelve uno o varios de los valores siguientes.

Código devuelto Descripción
PCS_REPLACEDCHAR
Ha reemplazado uno o varios caracteres no válidos.
PCS_REMOVEDCHAR
Se han quitado uno o varios caracteres no válidos.
PCS_TRUNCATED
La ruta de acceso devuelta se trunca.
PCS_PATHTOOLONG
Error en la función porque la ruta de acceso de entrada especificada en pszDir es demasiado larga para permitir la formación de un nombre de archivo válido de pszSpec. Cuando se devuelve esta marca, siempre va acompañada de la marca PCS_FATAL.
PCS_FATAL
La ruta de acceso limpia no es un nombre de archivo válido. Esta marca siempre se devuelve junto con PCS_PATHTOOLONG.

Comentarios

A continuación se consideran caracteres no válidos en todos los nombres.

\ / : * ? " < > |

Los caracteres de control también se consideran no válidos. Si no se admiten nombres de archivo largos, los caracteres de punto y coma (;) y coma (,) tampoco son válidos.

La unidad denominada en pszDir se comprueba para determinar si su sistema de archivos admite nombres de archivo largos. Si no es así, el nombre de pszSpec se trunca al formato 8.3 y se devuelve el valor de PCS_TRUNCATED. Si pszDir es NULL, la unidad en la que se instala Windows se usa para determinar la compatibilidad con nombres de archivo largos.

Si la ruta de acceso completa (el número de caracteres de la ruta de acceso en pszDir más el número de caracteres del nombre limpio en pszSpec) supera MAX_PATH – 1 (para tener en cuenta el carácter nulo de terminación), la función devuelve PCS_PATHTOOLONG.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado shlobj_core.h (incluya Shlobj.h)
Library Shell32.lib
Archivo DLL Shell32.dll (versión 5.0 o posterior)