Compatibilidad con caracteres de espacios en blanco en nombres de archivos y carpetas para Windows

En este artículo se describe la compatibilidad con caracteres de espacios en blanco en nombres de archivo y carpeta.

Se aplica a: Windows 10 (todas las ediciones), Windows Server 2012 R2
Número de KB original: 2829981

Resumen

Los nombres de archivo y carpeta que comienzan o terminan con el espacio ASCII (0x20) se guardarán sin estos caracteres. Los nombres de archivo y carpeta que terminan con el carácter de punto ASCII (0x2E) también se guardarán sin este carácter. Se conservan todos los demás caracteres de espacio en blanco finales o iniciales.

Por ejemplo:

  • Si un archivo se guarda como "Foo.txt", donde los caracteres iniciales son un espacio ASCII (0x20), se guardará en el sistema de archivos como "Foo.txt".
  • Si un archivo se guarda como "Foo.txt", donde los caracteres finales son un espacio ASCII (0x20), se guardará en el sistema de archivos como "Foo.txt".
  • Si un archivo se guarda como ".Foo.txt", donde los caracteres iniciales son un punto ASCII (0x2E), se guardará en el sistema de archivos como ".Foo.txt".
  • Si un archivo se guarda como "Foo.txt.", donde los caracteres finales son un período ASCII (0x2E), se guardará en el sistema de archivos como "Foo.txt".
  • Si un archivo se guarda como "Foo.txt", donde los caracteres iniciales son un carácter de espacio en blanco alternativo, como el espacio ideográfico (0x3000), se guardará en el sistema de archivos como " Foo.txt". No se quitan los caracteres de espacios en blanco iniciales.
  • Si un archivo se guarda como "Foo.txt", donde los caracteres finales son un carácter de espacio en blanco alternativo, como el espacio ideográfico (0x3000), se guardará en el sistema de archivos como "Foo.txt". No se quitan los caracteres de espacios en blanco finales. Los nombres de archivo y carpeta que comienzan o terminan con un carácter de espacio en blanco se enumeran de forma diferente en las API win32 y WinRT debido a los requisitos del ecosistema.

Más información

Caracteres de espacios en blanco

Hay varios caracteres de espacios en blanco que representan varios anchos de "espacio" (glifos). El Administrador de objetos solo controla los caracteres Espacio ASCII (0x20) y Período ASCII (0x24). Aunque el carácter Espacio ideográfico (0x3000) también se genera mediante la barra espaciadora (cuando se habilita IME), no se controla especialmente.

  • ESPACIO DE 0X0020
  • 0x00A0 ESPACIO SIN INTERRUPCIÓN
  • 0x1680 MARCA ESPACIAL OGHAM
  • 0x180E SEPARADOR DE VOCALES MONGOLES
  • 0x2000 EN QUAD
  • 0x2001 EM QUAD
  • 0x2002 ESPACIO EN
  • 0x2003 ESPACIO EM
  • 0x2004 ESPACIO DE TRES POR EM
  • 0x2005 ESPACIO DE CUATRO POR EM
  • 0x2006 ESPACIO DE SEIS POR EM
  • 0X2007 ESPACIO DE ILUSTRACIÓN
  • 0X2008 ESPACIO DE PUNTUACIÓN
  • 0x2009 ESPACIO FINO
  • 0x200A ESPACIO PARA EL CABELLO
  • 0x200B ESPACIO DE ANCHO CERO
  • 0x202F ESPACIO ESTRECHO SIN INTERRUPCIÓN
  • 0x205F ESPACIO MATEMÁTICO MEDIO
  • 0x3000 ESPACIO IDEOGRÁFICO
  • 0xFEFF ESPACIO SIN INTERRUPCIÓN DE ANCHO CERO

Administrador de objetos

El Administrador de objetos quita los caracteres de espacio ASCII (0x20) al principio o al final de un nombre de archivo o carpeta al crearlos.

El Administrador de objetos quita los caracteres de punto ASCII (0x2E) al final de un nombre de archivo o carpeta al crearlos.

El Administrador de objetos conserva todos los demás caracteres de espacios en blanco iniciales o finales.

Api (enumeración)

Win32 API

La API win32 (CreateFile, FindFirstFile, etc.) usa un método directo para enumerar los archivos y carpetas en un sistema de archivos local o remoto. Todos los archivos y carpetas se pueden detectar independientemente de la inclusión o ubicación de los caracteres de espacios en blanco.

WinRT API

La API de WinRT está diseñada para admitir varios proveedores de datos (unidades físicas, OneDrive, Facebook, etc.). Para ello, la API de WinRT usa un motor de búsqueda para enumerar archivos y carpetas. Debido al enfoque de búsqueda de la enumeración, la API de WinRT (StorageFile, StorageFolder, etc.) no controla los nombres de archivo y carpeta con caracteres de espacio en blanco finales que no sean Espacio ASCII (0x20) y Período ASCII (0x2E) que residen en un sistema de archivos local o remoto. Controla los caracteres de espacios en blanco que no son ASCII iniciales.

Comportamiento observado

aplicaciones de Explorador de archivos y escritorio

Todos los archivos y carpetas son visibles dentro de Explorador de archivos y aplicaciones de escritorio, independientemente de la inclusión o ubicación de los caracteres de espacios en blanco.

Aplicaciones de Microsoft Store

Cuando se usa el selector de archivos, no aparecen los archivos con un carácter de espacio en blanco no ASCII final. El contenido de las subcarpetas con caracteres de espacios en blanco no ASCII finales no se muestra en el selector de archivos. Se muestran los archivos o carpetas que contienen un carácter de espacio en blanco que no es ASCII.