Cách xóa thư mục không trống trong Qt.Xóa thư mục không trống trong Qt
31
A
Trả lời
39
Đệ quy xóa nội dung của thư mục trước. Here is a blog post with sample code for doing just that. Tôi đã bao gồm đoạn mã có liên quan.
bool removeDir(const QString & dirName)
{
bool result = true;
QDir dir(dirName);
if (dir.exists()) {
Q_FOREACH(QFileInfo info, dir.entryInfoList(QDir::NoDotAndDotDot | QDir::System | QDir::Hidden | QDir::AllDirs | QDir::Files, QDir::DirsFirst)) {
if (info.isDir()) {
result = removeDir(info.absoluteFilePath());
}
else {
result = QFile::remove(info.absoluteFilePath());
}
if (!result) {
return result;
}
}
result = QDir().rmdir(dirName);
}
return result;
}
Sửa: Câu trả lời ở trên là dành cho Qt 4. Nếu bạn đang sử dụng Qt 5, sau đó chức năng này được xây dựng vào QDir với phương pháp QDir::removeRecursively().
51
Nếu bạn đang sử dụng Qt 5, có QDir::removeRecursively().
Các vấn đề liên quan
- 1. xóa thư mục có thư mục con (không trống)
- 2. wix - cách xóa thư mục không trống
- 3. Không gian trống trong Jenkins xóa thư mục 'builds'
- 4. Làm cách nào để xóa thư mục không trống?
- 5. Xóa thư mục trống bằng cách sử dụng msbuild
- 6. Cách xóa tệp "dead.letter" không để lại không gian trống trong thư mục gốc
- 7. Không thể xóa thư mục trong Unix
- 8. Xóa một thư mục không trống trong lập trình C hoặc C++
- 9. Kiểm tra xem một thư mục có tồn tại (và tạo thư mục) trong Qt, C++
- 10. TFS xây dựng bị hỏng - Thư mục không trống trên thư mục nguồn
- 11. Cách tạo thư mục trống trong java?
- 12. Qt QFileSystemModel - Nhiều cây thư mục trong chỉ mục gốc
- 13. ASPNETCOMPILER: lỗi ASPRUNTIME: Thư mục đích không trống
- 14. Qt: Mở rộng ~ tới thư mục chính
- 15. làm cách nào để xóa thư mục trống trong git-svn?
- 16. Git checkout/pull không xóa thư mục?
- 17. Cách xóa nội dung của thư mục Documents (và không phải thư mục Documents)?
- 18. Xóa tất cả các tập tin trong một thư mục
- 19. Cách xóa thư mục không đồng bộ
- 20. NSFileManager xóa nội dung của thư mục
- 21. thêm thư mục trống vào tarfile
- 22. Xóa thư mục khi thoát trong Java
- 23. xóa thư mục cuối cùng trong URL
- 24. Heroku thư mục/tmp xóa
- 25. xóa thư mục từ java
- 26. Git có bỏ qua các thư mục trống không?
- 27. Kiểm tra xem thư mục có trống không
- 28. vĩnh viễn Xóa Thư mục
- 29. Xóa Thư mục khỏi DDMS
- 30. Xóa thư mục bằng Python
Dường như sẽ không hoạt động đối với đường dẫn tương đối. removeDir ("tài liệu") sẽ kiểm tra xem "tài liệu/tài liệu" có tồn tại trong tài liệu đầu tiên hay không. Cùng một vấn đề là trong dòng dir.rmdir. Tôi có đúng không? – cybevnm
@cybevnm: Vâng, bạn nói đúng. Tôi đã thay đổi đoạn mã để sử dụng phương thức 'exist()' bị quá tải mà không có tham số. http://doc.qt.io/qt-4.8/qdir.html#exists-2 –
Dòng "result = dir.rmdir (dirName)" có cùng lỗi mà tôi tin. Tôi đã sử dụng QDir(). Rmdir (dirName) để sửa chữa nó. – cybevnm