Đường dẫn tệp dài nhất mà Windows có thể xử lý là gì?
Đường dẫn tệp dài nhất mà Windows có thể xử lý là gì?
Câu trả lời:
Độ dài đường dẫn tối đa (từ MSDN)
Trong API Windows (với một số ngoại lệ được thảo luận trong các đoạn sau), độ dài tối đa cho một đường dẫn là MAX_PATH, được xác định là 260 ký tự . Một đường dẫn cục bộ được cấu trúc theo thứ tự sau: ký tự ổ đĩa, dấu hai chấm, dấu gạch chéo ngược, các thành phần được phân tách bằng dấu gạch chéo ngược và ký tự null kết thúc. Ví dụ: đường dẫn tối đa trên ổ D là "D: \ <một số chuỗi đường dẫn 256 ký tự> <NUL>" trong đó "<NUL>" đại diện cho ký tự null kết thúc vô hình cho bảng mã hệ thống hiện tại. (Các ký tự <> được sử dụng ở đây để rõ ràng trực quan và không thể là một phần của chuỗi đường dẫn hợp lệ.)
Đường dẫn tệp XP- 250 ký tự
Đường dẫn tệp Vista - 260 ký tự
Đường dẫn dài nhất trên bản cài đặt Windows XP sạch là 152 ký tự.
Con đường dài nhất trên bản cài đặt bán sạch của Windows Vista là 195 ký tự:
Windows XP cho phép tên tệp dài tối đa 255 ký tự
Windows Vista cho phép các tên tệp dài hơn chứa tới 260 ký tự.
Hằng số Windows MAX_PATH
bằng 260 như các câu trả lời khác nói, tuy nhiên, đường dẫn dài nhất thực sự là 32767.
Xem tại đây .
32k là trong khi sử dụng UNICODE, nhưng bây giờ chúng ta phải sử dụng nó, vì vậy chúng ta cũng nên sử dụng độ dài đường dẫn tối đa như vậy.
Ngoài ra, bạn có thể xem câu trả lời của tôi trong SO giải thích một số điều chi tiết hơn về độ dài đường dẫn tối đa.
Các "cổ điển" giới hạn là 260 ký tự: drive letter
+ :\
+ 255 characters of filename
+ \
(hoặc để làm tròn) + null terminator
như đã nói trong câu trả lời khác
Tuy nhiên, giới hạn bên trong thực tế là 32767 ký tự có thể đạt được bằng cách nối thêm \\?\
để có được đường dẫn đầy đủ
API Windows có nhiều chức năng cũng có phiên bản Unicode để cho phép đường dẫn có độ dài mở rộng cho tổng chiều dài đường dẫn tối đa là 32.767 ký tự. Loại đường dẫn này bao gồm các thành phần được phân tách bằng dấu gạch chéo ngược, mỗi đường dẫn đến giá trị được trả về trong
lpMaximumComponentLength
tham số củaGetVolumeInformation
hàm (giá trị này thường là 255 ký tự). Để chỉ định đường dẫn có độ dài mở rộng, hãy sử dụng"\\?\"
tiền tố. Ví dụ ,"\\?\D:\very long path"
.
Nếu do một số lý do, các đường dẫn đủ điều kiện không thể được sử dụng thì có thể truy cập các thư mục sâu hơn bằng cách gắn vào ký tự ổ đĩa bằng subst
/ diskpart
hoặc bằng cách tạo một đường nối / symlink để rút ngắn đường dẫn
Vì Windows 10, MAX_PATH
giới hạn cũng đã bị xóa mặc dù không theo mặc định
Bắt đầu từ Windows 10, phiên bản 1607, các
MAX_PATH
giới hạn đã được xóa khỏi các chức năng thư mục và tệp Win32 phổ biến. Tuy nhiên, bạn phải chọn tham gia vào hành vi mới.https://docs.microsoft.com/en-us/windows/desktop/FileIO/naming-a-file