Nếu bạn từng thấy lỗi này, có lẽ đó là sửa đơn giản cho bạn. Nếu gặp lỗi này hơn hai lần, bạn cũng biết đó có thể là vấn đề phức tạp để sửa. Hy vọng bạn chỉ gặp loại sửa dễ, nhưng chúng tôi cũng chuẩn bị cho bạn những cách sửa khó hơn nhưng chắc chắn hiệu quả.
Tại sao độ dài tên tệp lại là vấn đề trong Windows?
Có lịch sử lâu đời về độ dài tên tệp gây vấn đề cho hệ điều hành như Windows. Có thời bạn không thể có tên tệp dài hơn 8 ký tự cộng thêm phần mở rộng 3 ký tự. Tốt nhất bạn chỉ làm được kiểu myresume.doc. Đó là hạn chế do thiết kế hệ thống tệp. everything tốt hơn khi Windows phiên bản mới ra. Chúng ta chuyển từ hệ thống tệp cũ, giới hạn, sang New Technology File System (NTFS). NTFS đưa chúng ta đến điểm tên tệp có thể 255 ký tự, và độ dài đường dẫn tệp có thể lên tới 32.767 ký tự. Vậy tại sao vẫn có tên tệp quá dài?
Windows có những thứ gọi là biến hệ thống (system variables). Chúng là biến mà Windows dựa vào để hoạt động, vì Windows luôn biết ý nghĩa biến và nơi chúng ở, ngay cả khi chúng ta di chuyển bit và byte khắp nơi. Biến hệ thống MAX_PATH là biến giới hạn tên tệp và đường dẫn tệp dưới 260 ký tự. Vì là biến, bạn nghĩ có thể thay đổi nó. Không, chúng ta không nên. Đó giống như kéo một sợi chỉ khỏi áo len. Ngay khi một biến hệ thống thay đổi, các biến và thành phần khác phụ thuộc vào chúng bắt đầu rối.
Làm sao sửa, vậy?
Cách sửa dễ
Nếu bạn may mắn, bạn sẽ gặp lỗi và biết chính xác tên tệp nào gây vấn đề. Hoặc ít nhất biết tìm tệp ở đâu. Có thể tên tệp trông như:
C:\User\guymc\Documents\My Resumesresumewithanamesolongthatitcausesproblemsandbecomespartofsomeguysarticleonthewebhowdoyoulikemenow.docx
Rõ ràng ai là thủ phạm. Tìm tệp trong Windows Explorer, hoặc File Explorer như gọi trong Windows 10, nhấp một lần, nhấn F2 để đổi tên, và đổi tên tệp ngớ ngẩn đó thành thứ hợp lý hơn. Vấn đề giải quyết.
Các cách sửa khó hơn
Không phải lúc nào cũng dễ sửa vấn đề này. Đôi khi bạn không thể đổi tên tệp hoặc thư mục bất kể lý do gì. Các giải pháp sau sẽ giúp bạn. Chúng không khó làm.
Di chuyển, xóa, hoặc copy tệp/thư mục bằng PowerShell
Đôi khi bạn gặp lỗi khi di chuyển, xóa, hoặc copy thư mục nơi số ký tự đường dẫn tệp vượt quá 260. Lưu ý từ directory và folder có thể thay thế cho nhau. Chúng ta sẽ dùng 'directory' (thư mục) từ đây về sau. Các cmdlet PowerShell sau cũng dùng cho tệp.
Có thể đường dẫn tệp trông như:
C:\Users\guymc\Documents\This\Is\Exactly\The\Precise\Directory\Path\That\I\Need\To\Have\To\Keep\My\Files\Sorted\In\A\Manner\That\Makes\Sense\To\Me\So\Lets\Pretend\This\Is\An\Actual\Filepath\That\You\Might\Also\Have\On\Your\Windows\Computer\And\Not\Over\Think\It\Document.docx
Đường dẫn tệp đó dài 280 ký tự. Vì vậy không thể copy thư mục ra nơi khác bằng copy-paste bình thường. Chúng ta gặp lỗi Destination Path Too Long (Đường dẫn đích quá dài).
Giả sử vì lý do gì đó, chúng ta không thể đổi tên thư mục chứa tệp. Làm sao? Mở PowerShell. Nếu chưa dùng PowerShell, hãy xem bài Using PowerShell for Home Users – A Beginner's Guide. Bạn có thể làm các bước sau không cần đọc bài đó.
Khi PowerShell mở, bạn ở gốc thư mục user. Làm theo giả sử C:\Users\guymc là thư mục user của bạn. Thư mục tên This nằm trong thư mục Documents. Để vào thư mục Documents, dùng lệnh DOS cd Documents.
Bạn sẽ thấy prompt đổi thành C:\Users\guymc\Documents. Tốt. Chúng ta làm việc gần thư mục hơn sẽ dễ dàng hơn.
Copy thư mục dùng Copy-Item
Chúng ta muốn copy thư mục This và nội dung vào ThatNewFolder. Dùng cmdlet PowerShell Copy-Item với tham số -Destination và -Recurse. -Destination báo cho PowerShell nơi chúng ta muốn bản copy. -Recurse báo PowerShell copy tất cả mục bên trong đến đích. Copy để nguyên bản ở chỗ và tạo bản mới ở đích.
Copy-Item This -Destination ThatNewFolder -Recurse
Di chuyển thư mục dùng Move-Item
Giả sử muốn di chuyển thư mục This, và tất cả thư mục/tệp trong nó, đến ThatNewFolder. Di chuyển không để nguyên bản. Chúng ta dùng cmdlet PowerShell Move-Item với tham số -Path và -Destination. -Path định nghĩa mục muốn di chuyển và -Destination báo PowerShell nơi chúng ta muốn nó. Cmdlet sẽ đặt This bên trong ThatNewFolder. Nó cũng di chuyển mọi thứ bên trong thư mục This. Move-Item dùng cho tệp hoặc thư mục, hoạt động bất kể độ dài đường dẫn hoặc tên tệp.
Move-Item -Path This -Destination ThatNewFolder
Để chắc chắn nó hoạt động, dùng lệnh cd ThatNewFolder để vào ThatNewFolder. Sau đó dùng lệnh dir liệt kê thư mục trong ThatNewFolder. Bạn sẽ thấy thư mục This ở đó.
Xóa thư mục dùng Remove-Item
Nếu muốn xóa thư mục This và mọi thứ trong nó, dùng cmdlet Remove-Item. Cmdlet Remove-Item có cơ chế an toàn tích hợp khiến khó xóa thư mục có đồ bên trong. Trong ví dụ, chúng ta biết muốn xóa hết, nên dùng tham số -Recurse để xóa mọi thứ bên trong và -Force để làm mà không hỏi xác nhận cho mỗi mục.
Cảnh báo! Khôi phục bất cứ thứ gì xóa cách này cực khó. Bạn có thể thử phương pháp trong How to Recover Accidentally Deleted Files, nhưng đừng mong nhiều.
Remove-Item This -Recurse -Force
Bạn có thể dùng lệnh dir lại để xác nhận nó đã mất.
Làm Windows 10 chấp nhận đường dẫn tệp dài
Nếu bạn biết sẽ dùng đường dẫn và tên tệp dài thường xuyên, dễ hơn là làm Windows làm việc cho bạn. Không cần dùng PowerShell làm việc hàng ngày. Có hai cách làm. Một cho Windows 10 Home, một cho Windows 10 Pro hoặc Enterprise. Các phương pháp có thể hoạt động cho Windows 8.1 hoặc cũ hơn, nhưng không đảm bảo.
Làm Windows 10 Home chấp nhận đường dẫn tệp dài
Để làm Windows 10 Home chấp nhận đường dẫn dài, cần mở Registry Editor (Trình chỉnh sửa Registry). Nếu chưa làm việc trong Registry Editor, hãy cẩn thận. Xóa hoặc thay đổi sai có thể làm Windows ngừng hoạt động hoàn toàn. Luôn backup registry trước khi thay đổi. Học mọi thứ về backup và khôi phục Windows Registry trong Ultimate Guide.
Khi Registry Editor mở, và backup xong, điều hướng đến HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem và tìm khóa LongPathsEnabled.
Nhấp đúp LongPathsEnabled. Trong trường Value data:, đảm bảo số 1 ở đó. Nhấp OK để áp dụng thay đổi.
Thoát Registry Editor và bạn nên làm việc với đường dẫn tệp dài điên rồ rồi.
Làm Windows 10 Pro hoặc Enterprise chấp nhận đường dẫn tệp dài
Để cho phép Windows 10 Pro/Enterprise dùng đường dẫn tệp dài, dùng Group Policy Editor (Trình chỉnh sửa chính sách nhóm). Công cụ cho phép đặt chính sách về cách Windows hoạt động ở cấp máy tính và người dùng. Chúng tôi có vài bài dùng group policy làm việc như tắt/bật tùy chọn Internet Explorer, hoặc thêm thông báo màn hình đăng nhập.
Mở Group Policy Editor bằng cách vào menu Start gõ gpedit. Kết quả đầu tiên nên là Edit group policy. Nhấp đúp vào đó.
Khi Group Policy Editor mở, điều hướng đến Computer Configuration > Administrative Templates > System > Filesystem. Tại đó bạn sẽ thấy chính sách Enable Win32 long paths.
Nhấp đúp để chỉnh sửa cài đặt chính sách. Đổi từ Disabled sang Enabled, rồi nhấp nút OK để áp dụng.
Chính sách có thể không có hiệu lực ngay. Bạn có thể buộc cập nhật group policy.
Kết thúc
Có vài cách khác xử lý tên tệp và đường dẫn dài, nhưng những gì chúng ta đi qua đây là phương pháp đơn giản, hiệu quả nhất.