업로드 된 파일의 파일 이름을 보유 할 데이터베이스 테이블을 설계하고 있습니다. Windows XP 또는 Vista에서 사용되는 NTFS 파일 이름의 최대 길이는 얼마입니까?
답변
파일 이름의 개별 구성 요소 (예 : 경로를 따라 각 하위 디렉토리 및 최종 파일 이름)는 255 자로 제한되며 총 경로 길이는 약 32,000 자로 제한됩니다.
그러나 Windows에서는 MAX_PATH
값을 초과 할 수 없습니다 (파일의 경우 259 자, 폴더의 경우 248 자). 보다자세한 내용은 http://msdn.microsoft.com/en-us/library/aa365247.aspx 를 참조하십시오.
답변
257 자입니다. 정확히 말하면 : NTFS 자체는 최대 파일 이름 길이 (수 천자 (약 30’000 개))를 부과합니다. 그러나 Windows는 Path + Filename에 260 최대 길이를 부과합니다. drive + folder는 3 자 이상을 차지하므로 257로 끝납니다.
답변
긴 파일 이름으로 파일을 저장하려고 할 때 프레임 워크 4.5에서 “처리되지 않은 예외”에 표시되는 내용은 다음과 같습니다.
지정된 경로, 파일 이름 또는 둘 모두가 너무 깁니다. 완전한 파일 이름은 260 자 미만이어야 하고 디렉토리 이름은 248 자 미만이어야 합니다.
답변
199 Windows XP NTFS에서 방금 확인했습니다.
이것은 이론이 아니라 단지 랩톱에서 시도하는 것입니다. 완화 효과가있을 수는 있지만 물리적으로 크게 만들 수는 없습니다.
이것을 제한하는 다른 설정이 있습니까? 직접 해보십시오.
답변
답변
NTFS의 길이는 255입니다. NameLength
NTFS $Filename
속성 의 필드는 오프셋이없는 바이트입니다. 이 범위는 0-255입니다.
파일 이름 iself는 다른 “네임 스페이스”에있을 수 있습니다. 지금까지 POSIX, WIN32, DOS 및 (WIN32DOS-파일 이름이 기본적으로 DOS 이름 일 수있는 경우)이 있습니다. (문자열은 길이 가 있으므로 \ 0을 포함 할 수 있지만 문제가 발생하며 위의 네임 스페이스에 없습니다.)
따라서 파일 또는 디렉토리의 이름은 최대 255 자입니다. Windows에서 전체 경로를 지정할 때이 경로를 \\? \ 로 접두사 로 지정 하거나 UNC 경로에 \\? \ UNC \ server \ share를 사용 하여이 경로를 확장 길이 (~ 32k 자)로 표시해야합니다. . 경로가 더 길면 작업 디렉토리를 길을 따라 설정해야합니다 (프로세스 전체 설정으로 인한 부작용).