Tiêu đề quá dài. Tên tệp hoặc đường dẫn nguồn quá dài

Đây là một ví dụ về cấu trúc thư mục mà tôi gọi là “con búp bê lớn”:

Như bạn có thể thấy, trên ổ “D” (Dữ liệu) có một thư mục video nguồn, trong đó có thư mục “Phim”, trong đó có “Mọi thứ bạn cần để xem phim” và sau đó cũng có một thư mục tương tự trong một thư mục. Đồng thời, nhiều thư mục có tên và tên dài - hơn 10-15 ký tự, tổng cộng sẽ cho số lượng ký tự trong tất cả các tên lớn hơn 260. Và nếu ở cuối một “matryoshka” như vậy có một tệp, thì có thể bạn không thể làm việc với nó, bạn có thể... Đôi khi, bản thân hệ thống không cho phép bạn tạo một thư mục hoặc tệp vượt quá số lượng ký tự cho phép, nhưng đôi khi vì lý do nào đó, điều này xảy ra.

Đầu tiên, đối với người mới bắt đầu, tôi sẽ giải thích đường dẫn tệp và thư mục là gì. Đường dẫn là cái gọi là địa chỉ trên máy tính nơi chứa tệp hoặc thư mục. Ví dụ: một tệp có tên “My file.txt” nằm trên ổ đĩa cục bộ D: trong thư mục “Tài liệu”. Sau đó, đường dẫn đến tập tin này sẽ trông như thế này:

D:\Documents\Tệp của tôi.txt

Hoặc, ví dụ, đây là đường dẫn từ ví dụ trên, nơi tôi đã hiển thị cấu trúc thư mục phức tạp.

Như bạn thấy, số lượng ký tự trong đường dẫn trên rất lớn và rất có thể ở cuối sẽ có một file hoặc thư mục có tên dài mà bạn không thể xóa được.

Khi bạn cố gắng xóa một file có tên đường dẫn dài, bạn sẽ nhận được một cửa sổ có lỗi như sau:

Tôi đã cố gắng tái tạo lại vấn đề một cách giả tạo và đây là những gì tôi nhận được.

Trên ổ “D”, tôi đã tạo một thư mục có tên viết tắt là “1” và đặt một tệp có tên rất dài vào đó. Đây là một ví dụ:

Bây giờ tôi cũng đổi tên thư mục đó là “1” thành một cái tên rất dài, ví dụ:

Điều thú vị là Windows cho phép bạn thoải mái đổi tên thư mục thành một cái tên dài như vậy, mặc dù thực tế là số ký tự trong tên thư mục + tên tệp này đã vượt quá 260! Chà, sau khi đổi tên thư mục thành một cái tên dài, tôi không thể xóa tệp nằm trong đó được nữa và hiển thị lỗi.

Hoặc đây là một ví dụ khác... Tôi duy trì trang web của Trường Cao đẳng Chế tạo Dụng cụ Moscow, nơi trước đây tôi đã làm việc toàn thời gian và đôi khi tôi sử dụng một bản sao của trang web trên máy tính của mình để kiểm tra một số “tính năng mới” cho trang web. Điều gì sẽ xảy ra nếu tôi cài đặt thứ gì đó xấu và trang web trên hosting bị chết? :) Và vì vậy tôi kiểm tra nó trên máy tính của mình và nếu mọi thứ đều ổn thì tôi thiết lập nó trên một trang web thực nằm trên máy chủ lưu trữ. Vì vậy, có một lần tôi chuyển toàn bộ trang web từ hosting sang kiểm tra một thứ, và sau khi làm việc xong, tôi quyết định xóa thư mục chứa trang web đó khỏi máy tính của mình. Rốt cuộc, nó nặng khoảng 6 GB. Toàn bộ trang web đã bị xóa, ngoại trừ một số thư mục. Tôi bắt đầu tìm kiếm và thấy rằng những thư mục chứa một tệp có tên dài ở dạng chữ tượng hình vẫn chưa bị xóa:

Tôi đã cố gắng xóa tập tin này với một cái tên dài một lần nữa và thấy lỗi tương tự như tôi đã đề cập ở trên. Tôi đã cố gắng đổi tên nó, nhưng nó cũng không hoạt động. Chà, tôi phải nghĩ cách giải quyết vấn đề.

Cách giải quyết vấn đề xóa thư mục/file có tên đường dẫn dài!

Tôi đã thử 2 cách để xóa thư mục/tệp có tên dài trong đường dẫn đến nó. Cả hai đều không khó về mặt kỹ thuật (đặc biệt là phần 1), vì vậy tôi nghĩ người mới bắt đầu có thể đối phó nếu anh ta làm mọi thứ chính xác như tôi chỉ:

    Đổi tên nhiều thư mục trong đường dẫn tệp thành tên ngắn hơn. Đây là giải pháp đơn giản nhất có thể giúp được nhiều người! Giả sử bạn có một tệp trong một thư mục có tên rất dài mà bạn không thể xóa, mở, sao chép và nói chung là không thể làm việc được.

    Sau đó thử đổi tên thư mục chứa tệp có tên dài, chẳng hạn như thành “1”. Hãy để tôi quay lại một trong những ví dụ trên. Đây là một thư mục có tên dài:

    Sử dụng Windows Explorer tiêu chuẩn, tôi đổi tên tên của thư mục đó thành “1” và đường dẫn đến tệp bây giờ trông như thế này:

    Bây giờ bạn có thể làm việc với tệp một cách an toàn, hệ thống sẽ cho phép bạn mở nó, đổi tên và xóa nó.

    Nếu bạn có một cây thư mục dài, tức là. giống như một con búp bê làm tổ, trong thư mục này có một thư mục khác, trong đó có một thư mục khác, rồi một thư mục khác, sau đó bắt đầu đổi tên ngay từ thư mục đầu tiên của con búp bê làm tổ này. Không phải với cái cuối cùng trong danh sách, mà là với cái đầu tiên!

    Có thể có một số lượng lớn các thư mục và bạn sẽ không thể đổi tên một số thư mục do cùng một lỗi hoặc bạn sẽ mất rất nhiều thời gian. Trong trường hợp này, tôi đề xuất phương pháp thứ hai.

    Phương pháp là bạn có thể lấy một số thư mục, chẳng hạn như ở giữa một cây chung và kết nối nó dưới dạng một đĩa ảo. Đĩa ảo là thứ khiến chúng ta nhớ đến một đĩa cục bộ thông thường, nhưng nó chỉ đơn giản được gắn với một thư mục cụ thể, chẳng hạn như để tương tác nhanh với nó.

    Giả sử bạn có một con đường dài như thế này:

    D:\Video\Phim của tôi\Mọi thứ bạn cần để xem phim\Chương trình xem phim\Cách mở phim MP4\Danh sách phim ví dụ MP4\Danh sách các chương trình mở MP4\Những điều không nên làm khi mở tệp MP4

    Giả sử rằng trong thư mục cuối cùng, chúng ta có một loại tệp có vấn đề nào đó mà chúng ta không thể làm việc được, vì đường dẫn đến nó, như chúng ta thấy, khá dài :)

    Chúng ta có thể lấy và kết nối một trong các thư mục có tên dài ở giữa đường dẫn dưới dạng đĩa ảo. Đặt đây là thư mục “Chương trình xem phim”.

    Để kết nối một đĩa ảo, chúng ta cần cái gọi là dòng lệnh Windows, tức là. bảng điều khiển.

    Bạn có thể mở nó thông qua tìm kiếm Windows. Trong tìm kiếm, gõ “Dòng lệnh”:

    Trong cửa sổ dòng lệnh chúng ta cần gõ lệnh:

    subst virtual_disk_letter "path_to_folder"

    Bạn có thể đặt bất kỳ ký tự ổ đĩa nào, miễn là nó chưa bị một trong các ổ đĩa cục bộ chiếm giữ. Ví dụ: bạn có ổ đĩa cục bộ C và D, điều đó có nghĩa là bạn không thể gọi ổ đĩa ảo có cùng một chữ cái nữa. Ví dụ, bạn có thể gọi nó là chữ “X”, vì nó hiếm khi được sử dụng trong Windows.

    Đối với đường dẫn thư mục, bạn chèn đường dẫn đến thư mục muốn kết nối dưới dạng ảo. Như tôi đã nói, trong ví dụ của mình, chúng ta sẽ tạo “Chương trình xem phim” dưới dạng thư mục ảo, có nghĩa là đường dẫn cần được chỉ định như sau:

    D:\Video\Phim của tôi\Mọi thứ bạn cần để xem phim\Chương trình xem phim\

    Vì vậy, lệnh cuối cùng trong trường hợp của tôi sẽ như thế này:

    subst X: “D:\Video\Phim của tôi\Mọi thứ bạn cần để xem phim\Chương trình xem phim\”

    Để thực hiện lệnh đã nhập, nhấn phím “Enter” trên bàn phím. Đĩa ảo sẽ được tạo.

    Bây giờ chúng ta hãy vào Windows Explorer, đi tới phần “This PC” (hoặc “Computer”) và xem đĩa ảo đã tạo ở đó:

    Bạn có thể phân biệt nó bằng chữ cái của nó. Tôi đã gán chữ "X" cho đĩa ảo. Bây giờ nếu chúng ta mở đĩa ảo này, chúng ta sẽ ngay lập tức thấy mình trong thư mục “Chương trình xem phim”. Những thứ kia. chúng tôi đã lấy và cắt bỏ một nửa đường dẫn đến thư mục cuối cùng.

    Để so sánh...

    Trước đây, đường dẫn đến thư mục cuối cùng trông như thế này:

    D:\Video\Phim của tôi\Mọi thứ bạn cần để xem phim\Chương trình xem phim\Cách mở phim MP4\Danh sách phim ví dụ MP4\Danh sách các chương trình mở MP4\Những điều không nên làm khi mở tệp MP4

    Sau khi kết nối đĩa ảo với thư mục “Chương trình xem phim”, đường dẫn đến thư mục cuối cùng trông như sau:

    X:\Cách mở phim MP4\Danh sách phim ví dụ MP4\Danh sách các chương trình mở MP4\Những điều không nên làm khi mở file MP4

    Bạn có cảm thấy sự khác biệt? Đường dẫn được rút ngắn đi một nửa, vì ký tự ổ đĩa ngay lập tức hướng chúng ta đến thư mục ở giữa đường dẫn :) Và vì đường dẫn được rút ngắn đi rất nhiều, nên có lẽ bây giờ bạn đã loại bỏ giới hạn ký tự trong tên của các tệp và thư mục và sẽ có thể xóa một tập tin hoặc thư mục có tên dài!

    Sau khi bạn giải quyết vấn đề với tệp, đĩa ảo có thể bị xóa lại để nó không bị chướng mắt trong Explorer.

    Để thực hiện việc này, hãy mở lại dòng lệnh Windows và nhập lệnh:

    Thư_đĩa ảo thay thế /d

    Trong trường hợp của tôi, ký tự ổ đĩa là “X”, vì vậy lệnh sẽ như sau:

Khi tôi đang suy nghĩ về các phương án để giải quyết vấn đề, làm thế nào để xóa một thư mục hoặc tệp có tên dài, tôi tìm thấy một tùy chọn khác trên Internet: xóa tệp có vấn đề thông qua chương trình Total Commander. Tôi đã thử nó, nó không thành công, đó là lý do tại sao tôi không khuyên dùng phương pháp này :)) Và phương pháp này, ngay cả khi nó có hiệu quả với ai đó, thực sự không thú vị chút nào, vì bạn phải cài đặt một chương trình bổ sung trên máy tính của mình. máy tính để xóa chỉ một tập tin hoặc thư mục có tên dài...

Tôi nghĩ rằng nếu một vấn đề tương tự phát sinh mà tôi đã gặp phải hơn một lần, một trong những phương pháp được mô tả ở trên chắc chắn sẽ giúp ích cho bạn.

Đó là tất cả! Hẹn gặp lại các bạn ở những bài viết tiếp theo ;)

Hệ điều hành Windows có hại có ngăn bạn xóa một tệp và thông báo rằng “đường dẫn nguồn của nó quá dài” không? Trong bài viết này, tôi sẽ hướng dẫn bạn cách đánh bại tai họa này một cách dễ dàng và đơn giản mà không cần bất kỳ chương trình nào bằng cách rút ngắn tên tệp.

Đường dẫn tới nguồn quá dài - tại sao?

Tôi muốn giải thích ngay lý do tại sao cảnh báo hệ thống như vậy xuất hiện và không thể thực hiện các hành động sao chép hoặc xóa cơ bản trên một tệp (thư mục)…

Bản thân thông báo chứa câu trả lời cho câu hỏi này - hệ thống tệp Windows không hỗ trợ (không hiểu) tên tệp nguồn dài hơn 255 ký tự.

Nhưng tên tệp hoặc thư mục của bạn ngắn, chẳng hạn như “Ảnh kỳ nghỉ”? Thực tế là hệ thống "ngu ngốc" coi toàn bộ đường dẫn đến tệp là tên của nó. Nếu tệp hoặc thư mục của bạn nằm ở vị trí quá sâu trong trình quản lý tệp thì tên của nó sẽ trông giống như thế này...

Vì vậy, các ký hiệu tên được thu thập thành một nhóm gồm hơn 255 mảnh.

Làm cách nào để xóa một tập tin hoặc thư mục không thể xóa được trong trường hợp này? Rất đơn giản - bạn cần rút ngắn tên tệp (đường dẫn) bằng cách đổi tên các thư mục lồng nhau.

Cách xóa file có tên dài

Tôi sẽ chỉ cho bạn bằng ví dụ của mình cách xóa một tệp có tên dài mà hệ thống ghi rằng có đường dẫn đến nguồn quá dài.

Hôm qua tôi đã quyết định làm sạch máy tính của bạn từ các bản sao lưu cũ của trang web, nhưng chúng không muốn bị xóa. Đúng như bạn đoán, một cảnh báo xuất hiện về đường dẫn đến nguồn quá dài...

Bắt đầu từ thư mục đầu tiên trong con đường dài này, tôi đã đổi tên một số thứ...

...và cố gắng một lần nữa để loại bỏ tệp có tên bây giờ ngắn hơn - nó đã đi đến vùng chứa các tệp đã bị xóa một cách an toàn.

Đương nhiên, tên tệp (thư mục) mới phải bao gồm một ký tự hoặc số, như trong ví dụ của tôi.

Đây là cách dễ dàng giải quyết vấn đề xóa tập tin hoặc thư mục có tên dài. Tất nhiên đây không phải là phương pháp duy nhất. Có thể loại bỏ bằng các chương trình đặc biệt hoặc thông qua sổ đăng ký - Tôi vừa chỉ ra phương pháp thủ công. Đối với một số người, việc này sẽ chỉ mất một phút, đối với những người khác sẽ mất nửa giờ - bạn có thể quyết định cách rút ngắn tên tệp và đường dẫn quá dài đến nguồn.

Cập nhật những lời khuyên hữu ích mới và các chương trình máy tính thú vị.

Không có gì bí mật rằng Windows Explorer, giống như hầu hết các ứng dụng Windows khác, bao gồm cả PowerShell, không thể hoạt động với các đối tượng hệ thống tệp có lồng thư mục sâu. độ dài đường dẫn vượt quá 260 ký tự. Hơn nữa, hạn chế này chỉ tồn tại ở cấp độ ứng dụng và bản thân hệ thống tệp NTFS hỗ trợ các đường dẫn tệp lên tới 32767 nhân vật.

Giới hạn này được áp đặt bởi thư viện API Win32 và có độ dài đường dẫn tối đa là 260 ký tự ( MAX_PATH=260). Nói chung, đường dẫn được hình thành từ các yếu tố sau: +[path_of_256_characters]+[ ] và độ dài tối đa của một thư mục/tệp trong NTFS là 255 ký tự ở dạng Unicode. Khi sử dụng các hàm Unicode API, có thể sử dụng đường dẫn đến 32767 nhân vật. Nhờ đó, nhiều chương trình của bên thứ ba (chẳng hạn như các trình quản lý tệp phổ biến tương tự) XATổng chỉ huy) mà không gặp bất kỳ khó khăn nào khi xử lý các tệp/thư mục có độ dài đường dẫn vượt quá 260 ký tự.

Khuyên bảo. Bạn có thể bỏ qua giới hạn này của API Win32 và làm việc với tên tệp dài bằng cách sử dụng định dạng đường dẫn UNC, chỉ định đường dẫn tuyệt đối đến tệp bằng tiền tố đường dẫn có độ dài mở rộng \\?\ . Ví dụ: như thế này \\?\C:\SomeLongPath\LongNameFile.txt

Hạn chế này cũng không áp dụng khi người dùng có quyền truy cập mạng vào các tệp thông qua giao thức SMB (do điều này, cấu trúc thư mục có đường dẫn dài là phổ biến trên các máy chủ tệp có dữ liệu người dùng). Quản trị viên duy trì máy chủ này không thể quản lý (xóa/di chuyển) các tệp có đường dẫn dài thông qua giao diện Windows Explorer tiêu chuẩn. Khi cố gắng tạo/sao chép một tập tin vào thư mục đó, sẽ xuất hiện lỗi:

Đường dẫn đích quá dài. (Các) tên tệp sẽ quá dài đối với thư mục đích. Bạn có thể rút ngắn tên tệp và thử lại hoặc thử một vị trí có đường dẫn rút ngắn

Các chương trình/hộp thoại khác có thể báo cáo sự hiện diện của hạn chế theo cách riêng của chúng.

Đồng ý, thật buồn cười khi đó là năm 2014 và chúng ta vẫn đang nói về giới hạn 260 ký tự đối với độ dài đường dẫn tối đa trong Windows... Nhưng có vẻ như sẽ không có thay đổi mạnh mẽ nào được mong đợi trong tương lai gần và ngay cả trong phiên bản mới nhất Bản xem trước kỹ thuật Windows 10 vẫn tồn tại hạn chế này.

Trong bài viết này, chúng tôi sẽ hướng dẫn bạn cách làm việc với các tệp có đường dẫn vượt quá 260 ký tự trong Windows. Trong trường hợp này, nhiệm vụ của chúng ta là xóa một thư mục chứa các tệp có độ dài đường dẫn dài.

Khi bạn cố xóa thư mục đó khỏi Explorer, sẽ xuất hiện lỗi:

(Các) tên tệp sẽ quá dài đối với thư mục đích. Bạn có thể rút ngắn tên tệp và thử lại hoặc thử vị trí có đường dẫn rút ngắn.

Powershell cũng không thể xử lý chính xác các thư mục và tệp có đường dẫn lớn vượt quá 260 ký tự. Khi bạn cố xóa thư mục chứa các tệp như vậy (C:\Install\MS SQL 2012 Express Edition 64 bit\verylongpath), sẽ xuất hiện lỗi:

Xóa mục .\verylongpath -Recurse

Mục xóa: Đường dẫn, tên tệp được chỉ định hoặc cả hai đều quá dài. Tên tệp đủ điều kiện phải nhỏ hơn 260
ký tự và tên thư mục phải nhỏ hơn 248 ký tự.
Tại dòng:1 char:1
+ Xóa mục .\verylongpath -Recurse
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo: WriteError: (C:\Install\MS S...it\verylongpath:String) , PathTooLongExcepti
TRÊN
+ FullQualifiedErrorId: RemoveItemIOError,Microsoft.PowerShell.Commands.RemoveItemCommand

Tùy chọn đơn giản nhất (trên thực tế, được đề xuất trong cửa sổ lỗi) là rút ngắn tên của thư mục mẹ, giảm tổng độ dài của đường dẫn (nhưng điều này không phải lúc nào cũng có thể áp dụng được).

Mklink /d c:\install\link “C:\Install\MS SQL 2012 Express Edition 64 bit\verylongpath”

Một tùy chọn khác, gợi nhớ đến việc làm việc với một liên kết tượng trưng, ​​​​là ánh xạ thư mục có vấn đề vào một đĩa ảo (trong ví dụ X :) của chúng tôi, do đó cũng giảm độ dài đường dẫn:

Mục X: “C:\Install\MS SQL 2012 Express Edition 64 bit\verylongpath”

Bây giờ bạn có thể làm việc với dữ liệu trên ổ X:, đường dẫn đến tệp sẽ không vượt quá giới hạn. Sau khi hoàn thành công việc, bạn có thể xóa đĩa ảo:

Thế X: /d

Nhưng cá nhân tôi, điều tôi thích nhất ở nhiệm vụ xóa dữ liệu trong những tình huống như vậy là khả năng robocopy.exe, hỗ trợ làm việc với các đường dẫn dài.

Sử dụng tùy chọn /MIR, tiện ích robocopy có thể tạo một bản sao (bản sao) hoàn chỉnh của thư mục nguồn trong thư mục đích. Và nếu thư mục nguồn trống, tất cả dữ liệu trong thư mục đích cũng sẽ bị xóa. Hãy tạo một thư mục trống C:\Cài đặt\kiểm tra và sử dụng đối số /MIR, sao chép nội dung của thư mục kiểm tra vào thư mục đích (nếu tên thư mục chứa dấu cách hoặc ký tự Cyrillic thì đường dẫn phải được đặt trong dấu ngoặc kép).

Robocopy /MIR C:\Install\test "C:\Install\MS SQL 2012 Express Edition 64 bit\verylongpath"

Sau khi thực hiện lệnh, nội dung của thư mục C:\Install\MS SQL 2012 Express Edition 64 bit\verylongpath sẽ bị xóa (thay thế bằng nội dung của thư mục trống).

Vì vậy, hôm nay chúng tôi đã giới thiệu một số thủ thuật đơn giản mà bạn có thể sử dụng khi làm việc với các thư mục trên máy chủ tệp chứa các thư mục có độ dài đường dẫn vượt quá giới hạn 260 ký tự.