2011-10-08 35 views
7

Giả sử tôi cóLàm thế nào để xóa tất cả các thư mục con trong một số thư mục trong Ant?

/Root 
    /A 
     /to_delete 
     /not_to_delete 
    /B 
     /to_delete 
     /not_to_delete 
    /C 
     /to_delete 
     /not_to_delete 

Cách xóa các thư mục đó được gọi là "to_delete" trong Ant?

+0

có thể trùng lặp của [Xóa thư mục ngoại trừ một] (https://stackoverflow.com/questions/15619692/delete-folders-except-one) – peterh

+0

tôi fighted rất nhiều với nó vào thời điểm đó, tôi nghĩ rằng [ này] (https://stackoverflow.com/a/25668084/1783163) là những gì bạn thực sự muốn. – peterh

Trả lời

10

Vui lòng kiểm tra này:

http://ant.apache.org/manual/Tasks/delete.html

Nếu bạn không muốn để xác định A, B, C bạn sẽ phải làm một số trict khó chịu cho đệ quy searcing tất cả các thư mục con. Tôi đã làm điều này với một kịch bản java tùy chỉnh.

Nếu bạn có thể chỉ A, B, C mặc dù bạn chỉ cần một cái gì đó:

<delete includeEmptyDirs="true"> 
    <fileset dir="root" includes="**/to_delete/"/> 
</delete> 
+0

Không. Tôi không muốn chỉ định A, B, C Tôi không biết tên khi tôi xóa, nhưng tôi biết trong thư mục đó có thư mục có tên là "to_delete". Bạn không thể sử dụng Ant? – performanceuser

+0

Vâng nó phụ thuộc vào những gì bạn có nghĩa là Ant chỉ :). Tôi không nghĩ rằng có một nhiệm vụ tìm kiếm/xóa đệ quy. Bạn có thể tự viết bằng một trong các ngôn ngữ BSF được hỗ trợ. – FailedDev

+0

Tôi đã cố gắng sử dụng: \t \t \t \t \t \t \t \t \t \t \t \t Nó dường như doesn' t work – performanceuser

0

Vui lòng thử mã dưới đây và nó hoạt động để loại bỏ các thư mục và tiểu dirs là tốt.

<delete includeEmptyDirs="true"> 
    <fileset dir="${dir.to.delete}"> 
    <include name = "**" /> 
    <exclude name = "**/.svn" /> <!-- in case you want to skip .svn folders to avoid SVN conflicts --> 
    </fileset> 
</delete> 
Các vấn đề liên quan