Buộc xóa các tệp có tên khá lớn


62

Tôi thường xuyên sử dụng Node.js để quản lý các phụ thuộc cho các chương trình tôi viết, không có vấn đề gì lớn. Hôm nay tôi đã kết thúc với một cấu trúc thư mục như thế này:nhập mô tả hình ảnh ở đây

Cố gắng xóa bất kỳ tập tin đã gặp lỗi này:

Tên tệp nguồn lớn hơn được hỗ trợ bởi hệ thống tệp. Hãy thử di chuyển đến một vị trí có tên đường dẫn ngắn hơn hoặc thử đổi tên thành (các) tên ngắn hơn trước khi thử thao tác này.

Nó đã có trong C: \, vì vậy nó sẽ không ngắn hơn nhiều.



Bạn có biết làm thế nào cấu trúc thư mục của bạn có lớn như vậy tôi đã gặp tình huống tương tự khi cài đặt grunt.
eran otzer

1
@eranotzer bằng cách sử dụng npm.
Seiyria

Tôi đã không phụ thuộc vào gói.json của bạn khi viết không chính xác?
eran otzer

@eranotzer Vâng. Do cách npm @ 2 hoạt động, mọi phụ thuộc đều lồng các phụ thuộc của nó vào bên trong nó. Điều này có nghĩa là chuỗi phụ thuộc có thể dài tùy ý. npm @ 3 đang tìm cách điều chỉnh hành vi này.
Seiyria

Câu trả lời:


75

Sử dụng công cụ Microsoft robocopy.exe.

  1. Tạo một thư mục trống mới, vd c:\empty
  2. Sau đó sao chép thư mục trống đó vào thư mục chứa tên tệp dài mà bạn đang cố xóa, vd c:\myannoyingfolder. Làm như vậy trong dấu nhắc lệnh:

    robocopy / MIR c: \ trống c: \ myannoyingfolder


Vì đây là một phần trong quy trình làm việc của tôi thường xuyên, tôi đã tìm ra cách tích hợp nó với Windows shell. Xem câu trả lời của tôi dưới đây. :)
chập chững

Lưu ý: lệnh này có thể mất vài giây hoặc thậm chí vài phút để hoàn thành. Vì vậy, đừng lo lắng và hãy để nó làm điều kỳ diệu :-)
Adil Malik

Cảm ơn, đã làm việc cho tôi. Tôi phải đảm bảo rằng tôi cũng đã giết bất kỳ tiến trình (IIS) nào vẫn đang giữ một trong các tệp.
Slick Shinobi

Bất cứ khi nào tôi cố gắng mở robocopy.exe, một cửa sổ sẽ nhấp nháy trong giây lát và sau đó không có gì xảy ra. Xin hãy giúp đỡ
Maulik Modi

29

được rồi, giả sử bạn muốn xóa một cây D:\very\long\path, bạn không nhất thiết phải sử dụng bất kỳ công cụ nào như Robocopy.

  1. Chuyển đến thư mục gốc của ổ đĩa chứa thư mục mà bạn không thể xóa
  2. Tạo một thư mục với một tên chữ cái, vd D:\a
  3. Điều hướng đến bên trong thư mục mà bạn muốn xóa, trong trường hợp này D:\very\long\path
  4. Chọn tất cả ( Ctrl+ A) và Cắt ( Ctrl- X)
  5. Điều hướng đến thư mục bạn vừa tạo
  6. Dán ( Ctrl- V)
  7. Bây giờ, di chuyển đến thư mục gốc và xóa thư mục tạm thời, trong trường hợp này D:\a
  8. Sau đó quay lại và xóa thư mục gốc

2
Điều này đã không làm việc cho tôi trong lần thử đầu tiên đối với tôi. Tuy nhiên, sau khi lặp lại quy trình này, một vài cấp độ thư mục trong tôi đã có thể xóa mọi thứ.
abaldwin99

1
Giải pháp tuyệt vời, làm việc hoàn hảo. Đơn giản và hiệu quả, cảm ơn bạn!
Caner Öncü

TUYỆT QUÁ!! hoạt động như một cơ duyên !!! không có công cụ khác cần thiết. Cảm ơn!
Prasanth KC

Điều này hoạt động rất tốt và tôi sẽ thêm một điểm vào đây, nếu chọn tệp từ đường dẫn không hoạt động, bạn có thể chọn một thư mục ở giữa đường dẫn dài và thay vào đó di chuyển thư mục đó sang thư mục tạm thời cả hai theo một cách tương tự
Narayana Nagireddi

4

Tôi bắt đầu gõ vấn đề này trong khi thử vô số lệnh, bao gồm del /Frmdir /S(cũng như giữ shift trong khi xóa để cố gắng bỏ qua thùng rác). Tôi nghĩ rằng rmdir /Sthực sự đã xóa tất cả các tệp để tôi có thể tiến hành xóa các thư mục là các nút lá, sau đó tiến lên cây một vài nút cùng một lúc. Cuối cùng tôi đã dọn sạch tất cả, nhưng điều đó thật nực cười.


4

Bạn có thể tích hợp chức năng này vào vỏ windows. Sự nâng cao của tôi đối với câu trả lời của Flo quá dài cho một bình luận.

Tôi đã thêm một Deletelệnh vào menu ngữ cảnh Windows.

nhập mô tả hình ảnh ở đây

Các delete.regtập tin bổ sung thêm các khóa registry liên kết thư mục với robodelete.battập tin thực thi.

xóa.reg

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\Delete]

[HKEY_CLASSES_ROOT\Directory\shell\Delete\command]
"Extended"=""
@="\"D:\\Documents\\robodelete.bat\" \"%1\""

robodelete.bat

mkdir c:\empty
robocopy /MIR c:\empty %1
rmdir %1
rmdir c:\empty

Lưu ý : Bạn có thể cần thay đổi đường dẫn trong cả hai tệp theo sở thích của mình.

CẢNH BÁO : Không có cách nào để hoàn tác lệnh này. Nó không sử dụng thùng rác và không yêu cầu Y / N xác nhận trước khi hủy thư mục cho tốt!


Cảm ơn bạn đã cảnh báo. Tôi cũng cần điều này trong quy trình làm việc của mình nhưng tôi muốn tránh có nút hạt nhân trong menu nhấp chuột phải thiếu xác nhận Y / N. Nếu tôi có thời gian, tôi sẽ thực hiện điều chỉnh đó và đề nghị chỉnh sửa.
abaldwin99

1
@ abaldwin99, như thế này có thể stackoverflow.com/a/1807318/1045881
chập chững

4

Công cụ dòng lệnh mã nguồn mở SuperDelete ( GitHub ) đã hoạt động với tôi sau khi các tùy chọn khác không thành công (Windows 10).


3

Cách tốt nhất để làm điều này là sử dụng robocopy, tôi đã ghi lại điều này trên blog cá nhân của tôi để bạn theo dõi:

http://clintboessen.blogspot.com.au/2014/05/how-to-delete-files-which-exceed-255.html


4
Mặc dù liên kết này có thể trả lời câu hỏi, tốt hơn là bao gồm các phần thiết yếu của câu trả lời ở đây và cung cấp liên kết để tham khảo. Câu trả lời chỉ liên kết có thể trở nên không hợp lệ nếu trang được liên kết thay đổi hoặc biến mất.
Andrea

0

Trong nhiều trường hợp, CD vào thư mục từ dấu nhắc lệnh và sử dụng DEL sẽ hoạt động.

Nếu không, bạn phải làm việc tên của mình LÊN cây thư mục: đổi tên thư mục cấp thấp nhất thành tên ngắn hơn (ví dụ: "a"), sau đó tên thư mục cao hơn tiếp theo, v.v., cho đến khi tổng đường dẫn đủ ngắn. Bằng cách làm việc từ dưới lên trên, bạn luôn thao tác tên, có đường dẫn đầy đủ ngắn hơn các tệp cuối cùng.


0
  • Mở dấu nhắc lệnh hành chính
  • net use z: c:\path
  • del z:\*.*

Tinh chỉnh cho phù hợp. Z: chỉ là một ký tự ổ đĩa tùy ý để ánh xạ đường dẫn vi phạm tới. Lệnh xóa cuối cùng đó sẽ xóa thư mục WHOLE mà bạn đã ánh xạ - vì vậy hãy cụ thể hơn khi cần.


2
Điều này rất nguy hiểm cho người dùng không có quyền lực! Có khả năng xóa sạch một ổ đĩa nếu làm sai.
Rudi Strydom

Đồng ý 100%. Chắc chắn tiến hành thận trọng về điều này.
Bradley Forney

0

Một cách hay là để Linuxkhả năng khởi động trên Pendrive và xóa các tệp mà không gặp sự cố từ hệ điều hành CD trực tiếp .


-1

Tôi cũng gặp vấn đề tương tự và tôi đã tự mình tìm ra nó, chỉ cần đổi tên thư mục gốc càng ít càng tốt. Ví dụ. Nếu Thư mục của chúng tôi trong " D " Drive như D: // Thư mục / Undelete_Folder . Chỉ có một điều bạn phải làm là đổi tên thư mục mẹ nhỏ như, bạn có thể đổi tên thành " a ". thì vị trí của bạn sẽ là D: // a / Undelete_ Folde r. và sau đó xóa Thư mục gốc.


Điều này không chỉ không nhất thiết phải hoạt động (nếu nó vẫn lớn hơn, thậm chí với mức giảm?), Mà tôi còn đề cập rõ ràng rằng thư mục của tôi nằm trong thư mục gốc của ổ đĩa.
Seiyria

-2

Nếu vẫn thất bại

Đi đến Thư mục cuối cùng trong chuỗi. Cắt tập tin Dán lại vào tập tin thứ 4 hoặc thứ 5 trong Chuỗi. Sau đó, [Shift] + [Xóa] sẽ thực hiện Thủ thuật.

Tôi đã nghi ngờ khi chạy phần trên trong dấu nhắc lệnh nâng cao khi tôi đang xóa Tệp khôi phục thử nghiệm khỏi bản sao lưu DPM.

hi vọng điêu nay co ich.


Điều này có thể sẽ không hoạt động vì họ vẫn sẽ có đường dẫn tệp dài cho hoạt động cắt.
Seiyria
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.