¿Cómo crear el nombre de la carpeta o el nombre del archivo con caracteres especiales como \ /: *? "<> | [duplicado]

9

Mi problema es que no puedo dar el nombre de mi carpeta o archivo con caracteres especiales como \ /: *? "<> | en SO basado en Windows Esto es muy importante para mí, ese nombre de archivo / carpeta que contiene este tipo de caracteres.

Ya busco y remito a muchos sitios para estos problemas, pero todos son inútiles. También leí la página de soporte de Microsoft, sugieren usar otros caracteres. Este es su enlace, https://support.microsoft.com/en-us/kb/177506

Ya probé el botón Alt + número de código ASCII de este tipo de caracteres especiales, desde la tecla del teclado numérico, solo ejemplo, cambiar el nombre del archivo / carpeta y presionar Alt + 60 (para <caracteres) Todavía da un mensaje de que, un nombre de archivo no puede contener ninguno de los siguientes caracteres: \ / : * ? "<> |

Sugiérame una solución adecuada para que pueda dar el nombre de mi archivo / carpeta con este tipo de caracteres especiales.

Kirit_Vanani
fuente
Solo curiosidad: ¿para qué lo necesitas?
Kamil Maciorowski
@ kamil Esto es para dar el nombre de mi archivo / carpeta, y una tarea desafiante para mí.
Kirit_Vanani
@ PIMP_JUICE_IT Ya lo hice, (literalString -literalPath pero aún no
tengo
incluso si pudiera crear archivos con estos caracteres, ningún programa podría abrirlos o guardarlos.
Keltari
10
- ¿Cómo puedo lamerme el codo? No puedes. - Pero tengo que. - Puedes romperte el brazo e intentarlo, pero tu brazo será inútil entonces. - No me importa, solo necesito lamerme el codo.
Kamil Maciorowski

Respuestas:

16

Esto es muy importante para mí, nombrar el archivo / carpeta que contiene estos caracteres.

Puede ser importante para usted, pero tendrá que dejarlo pasar y buscar una forma diferente de resolver su problema.

Estos caracteres no están permitidos por las llamadas a funciones del sistema operativo Windows que manejan nombres de archivos.

No están permitidos específicamente porque tienen otro uso:

  • \- Reservado para usar como separador de ruta y carácter de escape
  • / - Reservado para usar como separador de ruta
  • : - Reservado para usar como delimitador de nombre de unidad
  • *y ?- Reservado para su uso como caracteres comodín
  • "- Reservado para su uso para citar nombres que contienen espacios
  • <, >y |- Reservado para su uso como operadores de redirección de comandos

Por supuesto, puede crear archivos con nombres que contengan estos caracteres utilizando un sistema operativo diferente (siempre que ese sistema operativo pueda leer / escribir un sistema de archivos de Windows).

Sin embargo, no podrá hacer nada con esos archivos usando ningún programa de Windows y no entenderán los nombres de los archivos y generarán errores.


Nombrar archivos, rutas y espacios de nombres

Convenciones de nombres

Las siguientes reglas fundamentales permiten a las aplicaciones crear y procesar nombres válidos para archivos y directorios, independientemente del sistema de archivos:

...

Use cualquier carácter en la página de códigos actual para un nombre, incluidos los caracteres Unicode y los caracteres en el conjunto de caracteres extendido (128–255), excepto por lo siguiente:

  • Los siguientes caracteres reservados:

    < (less than)
    > (greater than)
    : (colon)
    " (double quote)
    / (forward slash)
    \ (backslash)
    | (vertical bar or pipe)
    ? (question mark)
    * (asterisk)
    
  • Valor entero cero, a veces denominado carácter ASCII NUL.
  • Caracteres cuyas representaciones enteras están en el rango de 1 a 31, a excepción de las secuencias de datos alternativas donde estos caracteres están permitidos. Para obtener más información sobre las secuencias de archivos, consulte Secuencias de archivos.
  • Cualquier otro carácter que el sistema de archivos de destino no permita.

Archivos de nombres de origen , rutas y espacios de nombres


Pero realmente quiero hacer esto de todos modos.

Instalar cygwin y usar touch.

No he probado todas las posibilidades pero el siguiente trabajo:

touch :
touch \|
touch \"
touch \>

Salida de ejemplo:

DavidPostill@Hal /f/test/impossible
$ ll
total 0
-rw-rw-rw-+ 1 DavidPostill None 0 Aug 10 21:03 '"'
-rw-rw-rw-+ 1 DavidPostill None 0 Aug 10 21:02 :
-rw-rw-rw-+ 1 DavidPostill None 0 Aug 10 21:02 '|'
-rw-rw-rw-+ 1 DavidPostill None 0 Aug 10 21:07 '>'

Como puede ver, no son utilizables en Windows:

F:\test\impossible>dir
 Volume in drive F is Expansion
 Volume Serial Number is 3656-BB63

 Directory of F:\test\impossible

10/08/2016  21:07    <DIR>          .
10/08/2016  21:07    <DIR>          ..
10/08/2016  21:03                 0 
10/08/2016  21:02                 0 
10/08/2016  21:07                 0 
10/08/2016  21:02                 0 
               4 File(s)              0 bytes
               2 Dir(s)  1,772,601,536,512 bytes free

ingrese la descripción de la imagen aquí

DavidPostill
fuente
Agradezco su respuesta, es un poco útil, pero mi problema sigue siendo el mismo. Creo que cualquier otra forma de superusuario para cambiar el nombre con estos caracteres especiales.
Kirit_Vanani
2
@Kirit Puede crear archivos con esos caracteres, pero Windows no puede hacer nada con ellos y obtendrá errores cuando intente usar esos archivos desde Windows.
DavidPostill
@ DavidPostill Ohh, Cómo crear un nombre de archivo con esos caracteres. No me importa si da error, pero ahora la tarea es dar este tipo de nombre de personaje. Para acceder a este archivo
usaré
1
@Kirit Ya te dije en la respuesta "Por supuesto, puedes crear archivos con nombres que contengan estos caracteres usando un sistema operativo diferente (siempre que ese sistema operativo pueda leer / escribir un sistema de archivos de Windows)".
DavidPostill
3
@Kirit Ya te dije que no es posible .
DavidPostill
3

Crea tu propio conjunto de fuentes. Reemplace algunos de los caracteres que no usa con las imágenes de los caracteres reservados.

Clayton
fuente
1
Eso o usar personajes parecidos. Con Unicode, todo es posible. 🎃
Daniel B
@ Craig620 Puede que no sea posible, para mí. me puede dar una pista para ello.
Kirit_Vanani
No estoy seguro, solo una idea loca que me vino a la mente. ¿Tal vez hay un foro de Stack Exchange para tipografía o publicación que podría preguntar?
Clayton
2

En Windows, no puede crear archivos con esos caracteres. No hay solución, estos caracteres están prohibidos por la API de Win32.

Win32 es un subconjunto del espacio de nombres POSIX y no distingue entre mayúsculas y minúsculas. Utiliza todos los caracteres Unicode, excepto: '"' '*' '/' ':' '<' '>' '?' '\' '|' NB Los nombres no pueden terminar con Dot '.' O Space ''.

- http://dubeyko.com/development/FileSystems/NTFS/ntfsdoc.pdf

ChrisInEdmonton
fuente
NTFS no es el problema. (De hecho, permite que estos caracteres estén bien, tenía que hacerlo , para el soporte de Interix). El problema es el propio Windows, es decir, las restricciones son impuestas por las API de Win32 sin importar cuál sea el FS subyacente.
user1686
@grawity, pareces estar en lo correcto según mis investigaciones posteriores. He editado mi respuesta para reflejar esto.
ChrisInEdmonton
Creo que NTFS no es un problema. Debe tener alguna solución. Cuando accedo a la unidad NTFS desde un sistema operativo basado en Linux, puedo escribir este tipo de caracteres.
Kirit_Vanani
"Los nombres no pueden terminar con Dot". Incorrecto. Puede archivar nombres que terminan en .. No puedes hacer mucho con ellos desde cmd:)
DavidPostill
1
@Kirit Te han dicho muchas veces que no es posible .
DavidPostill