Jak usunąć niepusty folder w Qt.Usuwanie niepustego folderu w Qt
31
A
Odpowiedz
39
Najpierw rekursywnie usuń zawartość katalogu. Here is a blog post with sample code for doing just that. Dołączyłem odpowiedni fragment kodu.
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;
}
Edit: Powyższa odpowiedź była dla Qt 4. Jeśli używasz Qt 5, wtedy ta funkcja jest wbudowana w QDir metodą QDir::removeRecursively().
51
Jeśli używasz Qt 5, jest QDir::removeRecursively().
Powiązane problemy
- 1. Java - usuwanie atomowe (niepustego) katalogu
- 2. Usuwanie folderu zawierającego linki symboliczne
- 3. Usuwanie folderu z repozytorium svn
- 4. Usuwanie rozszerzenie nazwy pliku w Qt
- 5. QuerySet dla niepustego TextField
- 6. Qt QGridLayout - usuwanie odstępów między pozycjami
- 7. Wymuszenie pola niepustego w obiekcie JSON
- 8. Usuwanie folderu i jego podfolderów w Objective-C/C
- 9. Usuwanie obiektów wysyła sygnały, własności obiektów w sygnały, Qt
- 10. Czyszczenie/resetowanie modelu w qt (usuwanie wszystkich wierszy)
- 11. Jak przenieść plik do niepustego katalogu?
- 12. Programowanie programistyczne usuwania niepustego katalogu w C lub C++
- 13. QT Jak osadzić aplikację w widgecie QT
- 14. Qt: Nieznany moduł (moduły) w QT: webview
- 15. Entity Framework - oczekiwanie niepustego łańcucha dla parametru "providerInvariantName"
- 16. uzyskać wartość ostatniego niepustego kolumny dla każdego wiersza
- 17. usuwanie lub usuwanie ManagedObject w CoreData
- 18. Empty Mapa wzorzec pasuje nawet dla niepustego mapą
- 19. silverstripe - uprawnienia do plików dla folderu folderu
- 20. Usuwanie białych znaków w ciągu znaków
- 21. Przeniesienie zawartości folderu podrzędnego do folderu nadrzędnego w pythonie
- 22. Usuwanie pasków przewijania z QWebEngineView lub QWebEnginePage
- 23. Hierarchia w Qt [C++]
- 24. Tworzenie działki w Qt
- 25. Inteligentne wskaźniki w Qt
- 26. Pytanie newbie w Qt
- 27. Obrót obrazu w Qt
- 28. Interpolacja linii w Qt?
- 29. Uzyskiwanie MouseMoveEvents w Qt
- 30. Indeks folderu w wordpress .htaccess
Wygląda na to, że nie działa dla ścieżek względnych. removeDir ("docs") sprawdzi, czy "dokumenty/dokumenty" istnieje w pierwszym przypadku. Ten sam problem występuje w linii dir.rmdir. Czy mam rację ? – cybevnm
@cybevnm: Tak, masz rację. Zmieniono fragment kodu, aby użyć przeciążonej metody "exist()" bez parametrów. http://doc.qt.io/qt-4.8/qdir.html#exists-2 –
Linia "result = dir.rmdir (dirName)" ma tę samą wadę, w którą wierzę. Użyłem QDir(). Rmdir (dirName), aby to naprawić. – cybevnm