Câu hỏi Làm thế nào để xóa một tập tin trong Windows với một tên tập tin quá dài? [bản sao]


Câu hỏi này đã có câu trả lời ở đây:

Vợ tôi có một số tập tin và thư mục mà bằng cách nào đó kết thúc có tên tập tin đã gây ra cho họ để được undeleteable (không thể bị xóa) bằng phương tiện bình thường hoặc thông qua dòng lệnh. Tôi tin rằng tên tệp quá dài do độ sâu của cấu trúc thư mục. Có ai biết về một tiện ích tốt để làm sạch các tập tin như thế này?


195
2017-09-23 15:56


gốc


Các tệp này được tạo như thế nào? - Nick
Xin lỗi vì sự thiếu hiểu biết của tôi về chủ đề này, nhưng không nên Windows xử lý các tệp này? Không nên những gì Will Eddins được đăng tải được thực hiện tự động bởi Windows (thậm chí từ nhà thám hiểm)? - Stefanos Kalantzis
@ Mokubai- Câu hỏi trùng lặp phải được đánh dấu một bản sao của câu hỏi này, như câu hỏi này cũ hơn. - cybermonkey
@cybermonkey: Và nó có một câu trả lời tốt hơn. - Ellesedil
Để có thêm độc giả, Phương pháp 7zip với CTRL + DELETE là phương pháp dễ nhất trong quan điểm của tôi ... - Christian Gollhardt


Các câu trả lời:


Khi bạn muốn xóa hoàn toàn một thư mục và nó có tệp có tên dài bên trong nó, robocopy thực hiện một công việc VERY tốt:

mkdir empty_dir
robocopy empty_dir the_dir_to_delete /s /mir
rmdir empty_dir
rmdir the_dir_to_delete

Điều này hoạt động vì robocopy nội bộ sử dụng các phiên bản nhận biết Unicode của các hàm Win32, với \\?\ tiền tố cho đường dẫn tệp; các hàm này có giới hạn 2¹⁶-1 (32,767) ký tự thay vì 259.

Bạn có thể cần phải trải qua quá trình này nhiều lần để loại bỏ tất cả các tệp.


415
2017-08-29 13:38



Hiệu quả khi không có tên ngắn (8.3) được lưu trữ trong hệ thống tập tin. - Antoine RODRIGUEZ
Điều này làm việc tốt với Windows Store cứng đầu của tôi tệp bộ nhớ cache đã từ chối xóa. Cảm ơn! - Samir
Tôi đã phải thêm / thanh lọc vào dòng robocopy để làm việc này, nhưng nó đã làm các trick sau đó - actionshrimp
Robocopy là điều khiến tôi gặp rắc rối này, nhưng nó không bao giờ xảy ra với tôi để sử dụng Robocopy để đưa tôi ra khỏi nó. Câu trả lời chính xác! Cảm ơn! - Jay Michaud
@SarahofGaia, tệ của tôi, thực tế là 2¹⁶ - 1 - Benoit


Từ lời nhắc lệnh:

dir /X

Thao tác này sẽ liệt kê các tệp / thư mục của bạn ở định dạng tên ngắn. Sau đó, sử dụng tên ngắn chính xác như được viết để xóa tệp:

del LONGF~1.txt

89
2017-09-23 16:01



Tôi thích cái đó, đó là một chút suy nghĩ bên. - Col
Trong khi tôi không thể đảm bảo nó sẽ làm việc trong trường hợp này, tôi đã sử dụng nó nhiều lần để xóa các thư mục có ký tự không hợp lệ ở cuối mà làm cho họ không thể xóa bằng phương tiện bình thường. - Will Eddins
Điều này làm việc cho các tệp và thư mục trong thư mục hiện tại, nhưng nếu bạn bằng cách nào đó quản lý để tìm thấy chính mình phía trong một thư mục có đường dẫn quá dài, nó sẽ không giúp ích gì. Ví dụ, tôi hiện đang ở trong một giao diện điều khiển trong một con đường quá dài và thậm chí không thể dir hoặc là cd ... - Bobson
@Bobson Nếu bạn không thể dir sử dụng pushd thay thế. Điều đó làm việc cho tôi. - BadHorsie
Điều này không hoạt động với Windows 10, tên tệp được hiển thị là tên tệp dài - Loenix


Tôi progressivley làm việc theo cách của tôi vào đường dẫn, đổi tên mỗi thư mục mẹ kế tiếp thành "1" và cố gắng xóa. Bạn có hiệu quả rút ngắn đường dẫn mỗi lần và tôi chưa bao giờ phải làm việc trong hơn 4 hoặc 5 thư mục cho đến khi cuối cùng tôi có thể xóa toàn bộ cấu trúc thư mục (có thể hoặc không thể là thứ bạn muốn). Bạn có thể làm điều này từ thư mục con cuối cùng và làm việc theo cách của bạn lên hoặc xuống.


51
2017-09-23 17:40



Đây là thứ duy nhất làm việc cho tôi. Tất cả các thủ thuật khác được đưa ra ở đây và trong các diễn đàn khác như thế này không hoạt động. - Andrew Arnott
Vui mừng được giúp đỡ ... - joeqwerty
Là gợi ý duy nhất làm việc đủ kỳ quặc. - Nestor Ledon
Không thể làm điều này trong windows 10 ... đổi tên ném "filename to long" lỗi - Dawesi
Điều này không chỉ giải quyết được vấn đề đối với tôi, nó cũng giải thích làm thế nào tôi đã kết thúc với vấn đề này ngay từ đầu. Tôi phải có một con đường đã gần đến giới hạn, sau đó tôi đổi tên một thư mục cha mẹ (thêm một cái gì đó như "sao lưu tháng 11 năm 2016 tiết kiệm" vào tên) mà đẩy các tập tin trong thư mục con trên giới hạn. Tốt để biết nguyên nhân cũng như các giải pháp, mặc dù tôi biết nó có thể xảy ra những cách khác quá, tôi nghĩ rằng đây là một cách phổ biến nó xảy ra với folks. - eselk


Trong một số chương trình, bao gồm Command Prompt (cmd.exe), bạn có thể vượt qua giới hạn độ dài tệp bằng cách đặt trước đường dẫn đầy đủ với \\.\ như thế này:

\\. \ C: \ một số thư mục \ thư mục khác \ một tệp có tên dài

13
2017-09-23 16:12



không hoạt động trong cửa sổ 10 - Dawesi
cảm ơn, cmd đã làm việc một say mê với điều này trong Win7 rm -rf \\directoryname - Philip Pryde


Một mẹo mà tôi đã sử dụng để làm tròn giới hạn độ dài "đường dẫn đầy đủ và tên tệp" để di chuyển, sao chép hoặc xóa nội dung nào đó là rút ngắn nó bằng cách 'bẻ khóa' ở nửa chừng (hoặc hơn) bằng cách sử dụng một ký tự ổ đĩa được ánh xạ trỏ đến một thư mục cách xuống đường dẫn.

vì vậy bạn có c: \ some \ long \ path ... \ và \ foo \ bar \ folders \ oldfiles \ myoldfile.txt.

Sau đó ánh xạ một ký tự ổ đĩa tùy ý đến một nơi nào đó dọc theo đường dẫn để đoạn đầu tiên của đường dẫn chỉ dài một vài ký tự. Pre-requisite - thư mục phải nằm trong một thư mục chia sẻ (mà nó có thể đã được nếu nó nằm trên một máy chủ, đó là nơi tôi cần làm), và nếu nó chưa được rồi chọn một thư mục ở đâu đó trong đường dẫn và chia sẻ nó. Tùy thuộc vào môi trường của bạn và mức độ hoang tưởng, cho phép mọi người sửa đổi quyền truy cập vào phần chia sẻ miễn là các quyền NTFS có mức độ hạn chế hợp lý. Nếu bạn muốn, chỉ cho phép sửa đổi quyền đối với tài khoản của riêng bạn.

Bây giờ đi đến thư mục được chia sẻ hoặc một bên trong nó và chia sẻ nó, hoặc sử dụng dòng lệnh như sau. Giả sử bạn chia sẻ thư mục "foo" là "fooshare", sau đó bạn có thể làm

net use x: \\mycomputername\fooshare\bar\folders /persistent:no

và ổ X: hiện trỏ trực tiếp đến thư mục "thư mục" bên trong chia sẻ đó, vì vậy "x: \ oldfiles \ myoldfile.txt" hiện đã khá ngắn.

("/ Persistent: no" có nghĩa là điều này sẽ không tồn tại trong lần khởi động tiếp theo và gây nhầm lẫn cho bạn sau này. Đừng quên chia sẻ thư mục của bạn khi hoàn thành.)

Hãy nhớ rằng, bạn không phải chia sẻ thư mục chứa tệp nhất thiết, nếu nó đã nằm trong thư mục dùng chung, bạn có thể chỉ cần ánh xạ xuyên qua chia sẻ và các thư mục lồng nhau vào một thư mục đích ở gần vào tệp và hoạt động tốt.

Tôi đã phải sử dụng kỹ thuật này để thực hiện một robocopy lớn giữa hai máy chủ khi chúng tôi nhận ra rằng người dùng đã ánh xạ ổ đĩa khá sâu trong cấu trúc thư mục, vì vậy họ đã có thể sử dụng 255 ký tự từ đó, nhưng vượt quá tổng chiều dài đường dẫn tệp khi được truy cập từ gốc ổ đĩa cục bộ.


13
2018-02-21 17:18



bạn có thể tránh chia sẻ bằng cách sử dụng subst x: C:\Some\first\part\of\the\long\path và sau đó xóa ổ đĩa bằng subst x: /d - mihi
Nice thử nhưng khi bạn có 10 của k của thư mục lồng nhau nó là không thể. - Julian Knight
Các subst lừa dường như hoạt động tốt, miễn là tên tệp không vì thế miễn là làm cho nó vượt quá 260 ký tự ngay cả ở gốc của ổ đĩa. - Stephen Chung
Bạn cũng không cần phải chia sẻ một cách rõ ràng bất kỳ thư mục nào net use, bạn có thể sử dụng chia sẻ quản trị viên mặc định: net use x: \\localhost\c$\bar\folders /persistent:no - kapex


Cách đơn giản nhất tôi tìm thấy là khởi động từ CD trực tiếp trên Ubuntu.

Thay vào đó, bạn có thể tạo một thư mục chia sẻ giữa đường dẫn và sau đó ánh xạ ổ đĩa mạng đến đó và thực hiện xóa từ thư mục được ánh xạ (ngay cả trên cùng một máy)


9
2017-09-23 15:59



Thật buồn cười khi CD Ubuntu Live thường xuyên giúp khắc phục sự cố Windows ^^ - Ivo Flipse♦
Tôi đã nhận thấy rằng bản thân mình, mạng tinh ranh thử một đĩa CD trực tiếp, vấn đề hệ thống tập tin thử một đĩa CD trực tiếp, bảng phân vùng hỏng vv vv :-) - Col
Đây là giải pháp duy nhất có hiệu quả đối với tôi. Tôi yêu bạn, Linux! <3 - David Frye
Chạy bash từ cửa sổ Không cần Linux. ;-) Ngoài ra nếu bạn đang chạy windows 10 chỉ cần cài đặt "Windows hệ thống con cho Linux" về cơ bản windows sử dụng ubuntu api móc để có được công việc làm ... utils bao gồm "apt, ssh, rsync, tìm, grep, awk, sed, sắp xếp, xargs, md5sum, gpg, curl, wget, apache, mysql, python, perl, ruby, php, gcc, tar, vim, emacs, diff, patch và hầu hết hàng chục nghìn gói nhị phân trong kho lưu trữ Ubuntu! "Đây là một môi trường phát triển Linux rất đầy đủ chỉ chạy trên Windows. zdnet.com/article/ubuntu-and-bash-arrive-on-windows-10 - Dawesi
Cygwin là một lựa chọn khác để chạy các lệnh LINUX trong các cửa sổ - atom88


Đổi tên thư mục cắt / dán tệp ở nơi khác, sau đó xóa nó. Hoạt động ở đây.

Hoặc chỉ từ dấu nhắc lệnh, nếu bạn không muốn gặp rắc rối.


5
2017-09-23 19:39



Công việc này như một cái duyên vậy. Đào xuống đó (đối với tôi, nó đã được siêu lồng nhau node_modules thư mục), kéo nó ra màn hình của bạn và xóa đi. Rửa sạch và lặp lại khi bạn đi lên một vài thư mục cùng một lúc. Thật là một vấn đề đáng ghét. - nickb
Điều này không hiệu quả đối với tôi - thao tác dán không thành công do tên tệp dài - không quan trọng việc cắt nó ở đâu. - UpTheCreek


Có lẽ không phải là cách tốt nhất và tôi quan tâm để xem những gì người khác đến với -

Tôi đã có một lần này và tôi đã thử một vài điều mà không có bất kỳ may mắn nào. Thay vì tìm kiếm một công cụ tốt, tôi khởi động lại bằng Windows Disk, vào bảng điều khiển khôi phục và chỉ xóa nó khỏi đó. Làm việc lần đầu tiên và thực sự tốt!

Ngoài ra, chỉ cần một Google cho bạn và tìm thấy điều này - DelinvFile Có vẻ tốt nhưng không thể xác minh cho nó.

Chỉnh sửa - Cảnh báo, chỉ cần nhìn thấy ở trên chỉ là một thử nghiệm - Có thể không tốt như tôi nghĩ!


1
2017-09-23 16:00



Các rimraf miễn phí hoạt động tốt và làm việc khi tất cả các ý tưởng khác không thành công. Nó đòi hỏi node.js - Julian Knight