¿Cuál es la longitud máxima de nombre de archivo en Windows 10? Java trataría / catch sería Trough excepcion?

Philippe:

En versiones antiguas de ventanas Sé el máximo es algo alrededor de 250 caracteres para los archivos o carpetas, aproximadamente, ¿alguien sabe si lo cambiaron en Windows 10?

EDITAR:

Estoy haciendo un poco de código Java en torno API dado para extraer parte del contenido de una aplicación, serán pocos miles de archivos, y yo soy un poco preocupación por lo que podría suceder, ya que no sé lo que el nombre de archivo y la ruta que parecerán así que voy a tratar de evitar esos errores tal vez puede que el cambio de nombre en Java antes de guardar (pero es ideal mantener el nombre original),

también lo hacen usted sabe si habría sido arrojado alguna exención? File file = new File(jsonFile);? agradezca a que podía tratar potencialmente en la captura

TJ Crowder:

Si el archivo realmente quieren decir el nombre , creo que el límite es todavía "común" de 255 caracteres, véase el tercer párrafo citado ( "La API de Windows tiene muchos ..." ) a continuación.

Si el archivo media ruta : Puede activar la opción de "caminos largos Win32". A partir de este documento de Microsoft :

Ruta Longitud máxima Limitación

En la API de Windows (con algunas excepciones discutidas en los párrafos siguientes), la longitud máxima para un camino es MAX_PATH , que se define como 260 caracteres. Una ruta de acceso local se estructura en el siguiente orden: letra de unidad, colon, barra invertida, componentes de nombre separadas por barras invertidas, y un carácter de terminación nula. Por ejemplo, la ruta máxima en la unidad D es " D:\some 256-character path string<NUL>", donde " <NUL>" representa el carácter de terminación nula invisibles para la página de códigos del sistema actual. (Los caracteres <> se utilizan aquí para mayor claridad visual y no pueden ser parte de una cadena de ruta válida.)

Nota

Presentar funciones de I / O en el convertido API de Windows " /" a " \" como parte de convertir el nombre a un nombre de estilo NT, excepto cuando se utiliza el " \\?\prefijo" como se detalla en las siguientes secciones.

La API de Windows tiene muchas funciones que también tienen versiones Unicode para permitir un camino de longitud extendida para una longitud de recorrido total máxima de 32.767 caracteres. Este tipo de ruta se compone de componentes separadas por barras invertidas, cada uno hasta el valor devuelto en el parámetro lpMaximumComponentLength de la función GetVolumeInformation (este valor es comúnmente de 255 caracteres). Para especificar una ruta de longitud extendida, utilice el " \\?\" prefijo. Por ejemplo, " \\?\D:\very long path".

Nota

El camino máximo de 32.767 caracteres es aproximado, porque el " \\?\" prefijo puede ser ampliado a una cadena más larga por el sistema en tiempo de ejecución, y esta expansión se aplica a la longitud total.

El " \\?\" prefijo también se puede utilizar con los caminos construidos de acuerdo con la convención de nomenclatura universal (UNC). Para especificar la ruta como un uso de UNC, utilice el " \\?\UNC\" prefijo. Por ejemplo, " \\?\UNC\server\share", donde "servidor" es el nombre de la computadora y "compartir" es el nombre de la carpeta compartida. Estos prefijos no se utilizan como parte de la ruta en sí. Indican que el camino debe pasar al sistema con modificaciones mínimas, lo que significa que no se puede emplear la barra para representar separadores de ruta, o un período para representar el directorio actual, o puntos dobles para representar el directorio padre. Porque no se puede utilizar el " \\?\" prefijo con una ruta relativa, las rutas relativas son siempre limitadas a un total de MAX_PATH caracteres.

No hay necesidad de realizar ninguna normalización Unicode en cadenas de ruta y nombre de archivo para su uso por las funciones de la API de Windows / S de archivos porque el camino trata del sistema de archivos y nombres de archivo como una secuencia opaca de WCHAR s. Cualquier normalización que su aplicación requiere que se debe realizar con esto en mente, externa de todas las llamadas a funciones API de archivos de Windows I / O relacionados.

Cuando se utiliza una API para crear un directorio, la ruta especificada no puede ser tan largo que no se puede agregar un nombre de archivo 8.3 (es decir, el nombre del directorio no puede exceder MAX_PATH menos 12).

La cáscara y el sistema de archivos tienen diferentes requisitos. Es posible crear un trazado con la API de Windows que la interfaz de usuario del shell no es capaz de interpretar correctamente.

Habilitar largas rutas de acceso en Windows 10, versión 1607, y más tarde

A partir de Windows 10, versión 1607, MAX_PATH limitaciones han sido eliminados de archivos y directorios funciones comunes Win32. Sin embargo, debe optar en el nuevo comportamiento.

Para habilitar el nuevo comportamiento a largo trayecto, ambas de las siguientes condiciones deben cumplirse:

  • La clave de registro HKLM\SYSTEM\CurrentControlSet\Control\FileSystem LongPathsEnabled(Tipo: REG_DWORD) debe existir y estar a 1. El valor de la clave se almacenan en caché por el sistema (por proceso) después de la primera llamada a un archivo o directorio función de Win32 afectados (ver más abajo para la lista de funciones) . La clave de registro no se volverá a cargar durante el tiempo de vida del proceso. A fin de que todas las aplicaciones en el sistema reconozca el valor de la clave, un reinicio puede ser necesario debido a que algunos procesos pueden haber empezado antes de que se establece la clave.

Nota

Esta clave del registro también puede ser controlado a través de directivas de grupo en Configuración del equipo> Plantillas administrativas> Sistema> Sistema de Archivos> Habilitar rutas largas NTFS.

  • El manifiesto de aplicación también debe incluir el elemento longPathAware.

    <application xmlns="urn:schemas-microsoft-com:asm.v3">
        <windowsSettings xmlns:ws2="https://schemas.microsoft.com/SMI/2016/WindowsSettings">
            <ws2:longPathAware>true</ws2:longPathAware>
        </windowsSettings>
    </application>
    

Estas son las funciones de gestión de directorios que ya no tienen MAX_PATH restricciones si opt-in a un comportamiento largo camino: CreateDirectoryW, CreateDirectoryExW GetCurrentDirectoryW RemoveDirectoryW SetCurrentDirectoryW.

Estas son las funciones de gestión de archivos que ya no tienen MAX_PATH restricciones si se opta en la conducta largo camino: CopyFileW, CopyFile2, CopyFileExW, CreateFileW, CreateFile2, CreateHardLinkW, CreateSymbolicLinkW, DeleteFileW, FindFirstFileW, FindFirstFileExW, FindNextFileW, GetFileAttributesW, GetFileAttributesExW, SetFileAttributesW, GetFullPathNameW, GetLongPathNameW, MoveFileW, MoveFileExW, MoveFileWithProgressW, ReplaceFileW, SearchPathW, FindFirstFileNameW, FindNextFileNameW, FindFirstStreamW, FindNextStreamW, GetCompressedFileSizeW, GetFinalPathNameByHandleW.

Tenga en cuenta que mientras que el artículo dice que la configuración del editor de directivas de grupo es "Habilitar NTFS rutas largas", que ya no es el caso; es "Habilitar rutas largas Win32" ahora:

introducir descripción de la imagen aquí

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=315740&siteId=1
Recomendado
Clasificación