Come eliminare una cartella e tutti i suoi contenuti con Qt
?Cancellare una cartella e tutti i suoi contenuti con Qt?
Ho provato ad utilizzare:
QFile::remove();
ma sembra che elimina solo un file per volta.
Come eliminare una cartella e tutti i suoi contenuti con Qt
?Cancellare una cartella e tutti i suoi contenuti con Qt?
Ho provato ad utilizzare:
QFile::remove();
ma sembra che elimina solo un file per volta.
Per Qt5
c'è QDir::removeRecursively:
QDir dir("C:\\Path\\To\\Folder\\Here");
dir.removeRecursively();
Per Qt4
o basso è possibile utilizzare una funzione revursive che cancella ogni file:
bool removeDir(const QString & dirName)
{
bool result = true;
QDir dir(dirName);
if (dir.exists(dirName)) {
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 = dir.rmdir(dirName);
}
return result;
}
come indicato here.
Ho eliminato l'intera directory contiene circa 700 file di codice sorgente, per fortuna mi sono impegnato a svn un giorno prima. Il 'QDir :: NoDotAndDotDot' è molto importante, altrove salta un livello di altezza e poi cancellerà tutto lì – Phiber
Questo è un duplicato di questa domanda qui: http://stackoverflow.com/questions/11050977/removing-a-non-empty-folder-in-qt –
@InnocentBystander ti ha battuto di 25 secondi: P –
@RahulManne , +1 –