在Qt 6中,你可以使用QFileDialog
和QFile
类来实现弹出对话框让用户选择ZIP文件保存地址和名称的功能。以下是示例代码:
#include <QApplication>
#include <QFileDialog>
#include <QMessageBox>
#include <QFile>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
// 获取保存路径和文件名
QString destinationFilePath = QFileDialog::getSaveFileName(nullptr, "Save ZIP File", "", "ZIP Files (*.zip)");
if (destinationFilePath.isEmpty())
return 0;
// 拷贝文件
QFile sourceFile("path/to/source.zip");
QFile destinationFile(destinationFilePath);
if (!sourceFile.exists()) {
QMessageBox::critical(nullptr, "Error", "Source file does not exist.");
return 0;
}
if (!sourceFile.open(QIODevice::ReadOnly)) {
QMessageBox::critical(nullptr, "Error", "Failed to open source file for reading.");
return 0;
}
if (!destinationFile.open(QIODevice::WriteOnly)) {
QMessageBox::critical(nullptr, "Error", "Failed to open destination file for writing.");
return 0;
}
qint64 bytesCopied = destinationFile.write(sourceFile.readAll());
if (bytesCopied == -1) {
QMessageBox::critical(nullptr, "Error", "Failed to write data to destination file.");
return 0;
}
sourceFile.close();
destinationFile.close();
QMessageBox::information(nullptr, "Success", "ZIP file copied successfully.");
return app.exec();
}
这段代码首先使用QFileDialog
类让用户选择保存ZIP文件的路径和文件名。然后使用QFile
类将源ZIP文件复制到目标位置。在示例代码中,path/to/source.zip
是源ZIP文件的路径,你需要将其替换为实际的源文件路径。
请注意,该示例没有进行错误处理和进度更新等功能。你可以根据需要对代码进行修改和扩展。
希望能帮助到你!
内容由零声教学AI助手提供,问题来源于学员提问