werde aus QDir::rename nicht schlau
Verfasst: 20. Januar 2009 19:16
Eine Routine in einem Programm durchsucht eine Verzeichnisstruktur nach inkompatiblen Dateien und Ordnern. Dabei müssen manchmal ganze Ordner entfernt werden.
Erkennt das Programm einen solchen Ordner, wird der Benutzer gefragt, ob er ihn löschen oder verschieben möchte. Mit letzerem gibt es Probleme. Der Befehl QDir::rename kopiert in diesem Falle den Ordner zum Ziel. Der alte Ordner wird nicht entfernt und QDir::rename liefert false zurück. Hier der Code:
Erkennt das Programm einen solchen Ordner, wird der Benutzer gefragt, ob er ihn löschen oder verschieben möchte. Mit letzerem gibt es Probleme. Der Befehl QDir::rename kopiert in diesem Falle den Ordner zum Ziel. Der alte Ordner wird nicht entfernt und QDir::rename liefert false zurück. Hier der Code:
Code: Alles auswählen
if(removePlugin.clickedButton() == moveButton)
{
movePath.append(QFileDialog::getExistingDirectory(this, tr("select a folder to move the plugin into"),QDir::home().path(),QFileDialog::ShowDirsOnly));
movePath.append("/");
movePath.append(file.section('/',-1));
DirObject=QDir(file);
if(!(DirObject.rename(file,movePath)));
QMessageBox::critical(this, tr("Cleanitool Express"),tr("The directory could not be moved. Check the directory permissions!"));
}