error: nombre de archivo demasiado largo El nombre de archivo excede el límite máximo del sistema

Longitudes máximas de nombres de archivos y directorios admitidas por cada sistema operativo (Linux, Win, Mac)

Cuando estaba desarrollando los requisitos hoy, descubrí que no podía crear un nuevo archivo y se me indicó que el nombre del archivo es demasiado largo, así que busqué y consulté información, y encontré que la longitud más larga del nombre del archivo y El nombre del directorio es diferente en diferentes sistemas operativos.

Sistema operativo Longitud máxima del nombre de archivo (bytes) longitud de la trayectoria
linux 255 4096
MAC 255 1024
Windows (con nombres de archivo largos deshabilitados) 255 260
Windows (habilitar nombres de archivo largos) 255 32767

Aviso:文件名包含扩展名

  • Si creamos un directorio con caracteres especiales en Linux o Mac, simplemente use comillas simples directamente, como: 'Ah 1Aa~!@#$%^&()_+{}'

Tanto los nombres de archivo como los nombres de directorio tienen un límite de longitud máxima en el sistema operativo, y la longitud máxima es diferente en diferentes sistemas.

1 linux

Explicado en /usr/include/linux/limits.h de Linux

inserte la descripción de la imagen aquí

Las líneas 11 y 12 del contenido del archivo anterior indican respectivamente la longitud máxima del nombre del archivo y el nombre de la ruta relativa. Cabe señalar que los caracteres se refieren a caracteres ASCII, si son caracteres chinos u otros idiomas, depende de la codificación.

Estas restricciones se pueden modificar modificando el kernel del sistema bajo el sistema Linux.

El límite de longitud de los nombres de archivos y directorios de Linux es de 255 caracteres (bytes, los caracteres en Linux están codificados en código ascii)

Por ejemplo: 255 letras en inglés, incluido el chino es inferior a 255

2 ventanas

Windows normalmente limita el nombre del archivo para que contenga hasta 260 caracteres (un carácter chino ocupa dos caracteres). Pero el nombre de archivo real debe ser menor que este valor, porque la ruta completa (como C:\Program Files\filename.txt) está incluida en este valor de carácter.

En Windows, el nombre de archivo completo debe tener menos de 260 caracteres y el nombre del directorio debe tener menos de 248 caracteres.

  • entorno de bits win7x64:

La longitud de 260 se utiliza como límite de longitud total del nombre de archivo.

Por ejemplo: la longitud de la carpeta es 50

La longitud del nombre del archivo está limitada a menos de 210 y, si supera, se truncará.

Si está en el programa, MoveFile/CopyFile devolverá un error si se excede la longitud y el procesamiento fallará.

ejemplo:

Creé manualmente un archivo en C:\ y lo renombré con una longitud de 280, pero el nombre real del archivo generado tiene una longitud de 256 (.txt también se contará como longitud)

1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstu vwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklm.txt

Nombre de archivo generado real:

xxxxx omitido

Un total de 256 longitudes, más las tres longitudes de "C:\", un total de 259 longitudes, más un terminador de cadena '\0', exactamente 260 bits de longitud

注意:Si el nombre del archivo es demasiado largo, puede activar el interruptor de nombre de archivo largo de Windows

3 mac

La longitud máxima del nombre de archivo es de 255 bytes (incluida la extensión), la longitud máxima de la ruta: 1024

Artículo de referencia:
https://blog.csdn.net/beyondlpf/article/details/7873045
https://blog.csdn.net/jimmyleeee/article/details/124682486

Supongo que te gusta

Origin blog.csdn.net/weixin_45565886/article/details/131659741
Recomendado
Clasificación