Làm cách nào để xóa một thư mục có tất cả các tệp/thư mục con của nó (xóa đệ quy) trong C++?Xóa thư mục và tất cả các tệp/thư mục con
Trả lời
Chuẩn C++ không cung cấp phương tiện làm việc này - bạn sẽ phải sử dụng mã hệ điều hành cụ thể hoặc thư viện đa nền tảng như Boost.
Bạn có thể sử dụng boost::remove_all
từ Boost.Filesystem.
Nghiêm túc:
system("rm -rf /path/to/directory")
Có lẽ nhiều hơn những gì bạn đang tìm kiếm, nhưng unix cụ thể:
/* Implement system("rm -rf") */
#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
#include <sys/syslimits.h>
#include <ftw.h>
/* Call unlink or rmdir on the path, as appropriate. */
int
rm(const char *path, const struct stat *s, int flag, struct FTW *f)
{
int status;
int (*rm_func)(const char *);
switch(flag) {
default: rm_func = unlink; break;
case FTW_DP: rm_func = rmdir;
}
if(status = rm_func(path), status != 0)
perror(path);
else
puts(path);
return status;
}
int
main(int argc, char **argv)
{
while(*++argv) {
if(nftw(*argv, rm, OPEN_MAX, FTW_DEPTH)) {
perror(*argv);
return EXIT_FAILURE;
}
}
return EXIT_SUCCESS;
}
Điều này có được giảm giá vì nó là C thay vì C++ (mặc dù nó biên dịch tốt với g ++ -Wall -Wextra), hoặc bởi vì nền tảng của trình gỡ xuống không có nftw? Bình luận khi bạn downvote, xin vui lòng! Đây là mã rắn. –
Cách di động là 'hệ thống ("rm -rf/path/to/directory") '? Nó có hoạt động trên bất kỳ hệ điều hành * nix nào không? Rõ ràng sẽ không hoạt động trong Windows. –
Bạn có thể sử dụng ftw()
, nftw()
, readdir()
, readdir_r()
phải đi qua một thư mục và xóa các tập tin đệ quy.
Nhưng vì không phải ftw()
, nftw()
, readdir()
an toàn theo chủ đề, tôi sẽ đề xuất readdir_r()
thay vào đó nếu chương trình của bạn chạy trong môi trường nhiều luồng.
- 1. Danh sách tất cả thư mục và thư mục con
- 2. Liệt kê tất cả các tệp và thư mục trong thư mục + thư mục con
- 3. CoffeeScript - biên dịch tất cả các tệp .coffee trong thư mục hiện tại và tất cả các thư mục con
- 4. Tạo một thư mục con cho tất cả các thư mục trong thư mục
- 5. Sử dụng tìm để xóa tất cả các thư mục con (và các tệp của họ)
- 6. Lọc trên thư mục và tất cả các thư mục con trong Google Analytics
- 7. danh sách VBScript tất cả các file PDF trong thư mục và thư mục con
- 8. Liệt kê các tệp trong thư mục và tất cả thư mục con
- 9. Mã Python để tìm tất cả các tệp mới được tạo, sửa đổi và xóa trong tất cả các thư mục/thư mục con bắt đầu từ/directory
- 10. Xóa tất cả các tệp git khỏi một thư mục?
- 11. Buộc xóa tất cả các tệp khỏi một thư mục
- 12. Xóa tất cả các tập tin trong một thư mục
- 13. Cách đếm tất cả các tệp trong một thư mục, thư mục con của nó và tất cả. Số đếm không được bao gồm số thư mục
- 14. 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?
- 15. CMake: Cách lấy tên của tất cả các thư mục con của một thư mục?
- 16. Tìm tất cả các thư mục con của thư mục Inbox sử dụng EWS
- 17. làm thế nào để liệt kê tất cả các thư mục con trong một thư mục
- 18. Xóa một thư mục và các thư mục con của nó trong Mục tiêu-C/C
- 19. Liệt kê tất cả các thư mục trong thư mục
- 20. Bash/Shell-Di chuyển tất cả các tệp từ thư mục con vào thư mục đích?
- 21. Bash: scp tất cả các tệp trong một thư mục, nhưng không phải thư mục con
- 22. Cách nhận tệp trong thư mục, bao gồm tất cả các thư mục con
- 23. Cách gzip tất cả các tệp trong tất cả các thư mục con trong bash
- 24. danh sách tất cả các file trong thư mục và cũng phụ thư mục
- 25. grep trong tất cả các thư mục
- 26. Favicon trong thư mục con tất cả tên miền phụ
- 27. Làm thế nào để đuôi tất cả các tệp nhật ký bên trong một thư mục và thư mục con?
- 28. Python - Nhận đường dẫn tương đối của tất cả các tệp và thư mục con trong một thư mục
- 29. Làm thế nào để liệt kê tất cả các thư mục và thư mục con/tệp trong iPhone SDK?
- 30. Đệ quy lặp qua tất cả các tệp trong thư mục và thư mục con của nó trong Qt
Chỉ cần một nút bên: Có một bản sao cho câu hỏi này, nếu bạn không muốn dựa vào tăng, nó là giá trị để có một cái nhìn tại câu trả lời được chấp nhận [có] (http://stackoverflow.com/a/2256974/1312382). – Aconcagua