Cómo eliminar una carpeta no vacía en Qt.Eliminación de una carpeta no vacía en Qt
31
A
Respuesta
39
Primero elimine el contenido del directorio de forma recursiva. Here is a blog post with sample code for doing just that. He incluido el fragmento de código relevante.
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;
}
Editar: La respuesta anterior era para Qt 4. Si está utilizando Qt 5, entonces esta funcionalidad está integrada en QDir con el método QDir::removeRecursively().
51
Si está utilizando Qt 5, existe QDir::removeRecursively().
Cuestiones relacionadas
- 1. Eliminación de una carpeta en TFS
- 2. ¿Cómo crear una carpeta vacía en java?
- 3. comprimir una carpeta/archivo usando qt
- 4. Eliminación de una carpeta que contiene enlaces simbólicos
- 5. Comprobando si existe una carpeta (y creando carpetas) en Qt, C++
- 6. SVN: ¿cómo la eliminación de una carpeta bin hace que se elimine la carpeta src?
- 7. Prueba Powershell si la carpeta está vacía
- 8. La carpeta Gen está vacía para el proyecto de Android
- 9. Repositorio de Git desde la carpeta verde vacía de github
- 10. ¿Cómo obtener la carpeta de descarga del usuario en Qt?
- 11. Comportamiento de eliminación de la carpeta de Google Drive
- 12. ¿Cómo comprobar rápidamente si la carpeta está vacía (.NET)?
- 13. Eliminación de factores no utilizados de una faceta en ggplot2
- 14. Usando una DLL basada en Qt en una aplicación que no es Qt
- 15. ¿Cómo crear una carpeta en Java?
- 16. Sin archivo de recursos en Qt Creator
- 17. Eliminación de espacios en blanco dentro de una cadena
- 18. Qt 4.x: ¿cómo implementar arrastrar y soltar en el escritorio o en una carpeta?
- 19. El sitio de Maven (Maven 3) genera una carpeta de sitio vacía
- 20. Eliminación de directorios no vacíos en Java
- 21. ¿Cómo eliminar una carpeta vacía de un proyecto bajo el control TFS?
- 22. Integración Qt Eclipse no funciona
- 23. Eliminación de elementos no deseados en java
- 24. Delphi: cambio de nombre de una carpeta no válida
- 25. UITableview cells height no funciona en una tabla vacía?
- 26. Cómo no envía una colección vacía en Jackson
- 27. Acerca del uso de una clase no documentada en Qt
- 28. ¿Está Qt clasificado como una biblioteca de C++? Si no es una biblioteca, ¿cómo clasificaría QT?
- 29. Ventajas de una clase vacía en C++
- 30. ¿Cómo se compila una clase vacía y una estructura vacía?
Parece que no funcionará para rutas relativas. removeDir ("documentos") comprobará si "docs/docs" existe en el primero si. El mismo problema está en la línea dir.rmdir. ¿Estoy en lo cierto? – cybevnm
@cybevnm: Sí, tienes razón. Cambié el fragmento para usar el método 'exists()' sobrecargado sin parámetros. http://doc.qt.io/qt-4.8/qdir.html#exists-2 –
La línea "result = dir.rmdir (dirName)" tiene el mismo defecto, creo. He usado QDir(). Rmdir (dirName) para arreglarlo. – cybevnm