将目录移动到回收站
Move a directory to trash
是否可以将整个目录移至回收站(如文件 QFile::moveToTrash)?
有一个包含很多文件的文件夹,这会在将每个单独的文件移动到回收站时造成混淆。
编辑:
// "backup" is a folder in the application directory
//QDir("backup").removeRecursively();
QFile::moveToTrash("backup");
ui->btnDeleteAllBackups->setEnabled(false);
refreshDiskUsage();
qInfo().noquote() << "Deleted backups";
您可能正在寻找的是 QDir::removeRecursively。
Removes the directory, including all its contents.
Returns true if successful, otherwise false.
请记住,这只会报告操作是否成功。单独删除内容将使您有机会向用户显示进度对话框并更具体地报告错误。
这很容易。只需使用 QFile::moveToTrash(path_to_dir);
到您的目录,就像您对文件所做的一样。这一行会将整个目录及其所有内容移至垃圾箱。这适用于 Qt 5.15.2。某些旧版本的 Qt 中存在一些错误(主要是 Linux),因此请确保您拥有最新版本。
但请注意,某些驱动器(闪存盘)通常不支持垃圾箱,内容将被永久删除。
是否可以将整个目录移至回收站(如文件 QFile::moveToTrash)? 有一个包含很多文件的文件夹,这会在将每个单独的文件移动到回收站时造成混淆。
编辑:
// "backup" is a folder in the application directory
//QDir("backup").removeRecursively();
QFile::moveToTrash("backup");
ui->btnDeleteAllBackups->setEnabled(false);
refreshDiskUsage();
qInfo().noquote() << "Deleted backups";
您可能正在寻找的是 QDir::removeRecursively。
Removes the directory, including all its contents.
Returns true if successful, otherwise false.
请记住,这只会报告操作是否成功。单独删除内容将使您有机会向用户显示进度对话框并更具体地报告错误。
这很容易。只需使用 QFile::moveToTrash(path_to_dir);
到您的目录,就像您对文件所做的一样。这一行会将整个目录及其所有内容移至垃圾箱。这适用于 Qt 5.15.2。某些旧版本的 Qt 中存在一些错误(主要是 Linux),因此请确保您拥有最新版本。
但请注意,某些驱动器(闪存盘)通常不支持垃圾箱,内容将被永久删除。