如果你想在保存路径中使用默认的ZIP文件名,你可以通过QFileDialog的参数设置默认文件名。以下是修改后的示例代码:
#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;
// 添加默认的ZIP文件名
if (!destinationFilePath.endsWith(".zip", Qt::CaseInsensitive))
destinationFilePath += ".zip";
// 拷贝文件
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();
}
在这个例子中,我们检查了destinationFilePath
是否已经以.zip
结尾。如果没有,我们手动添加了.zip
扩展名。这样,用户选择的保存路径就会有一个默认的ZIP文件名。
记得将示例代码中的"path/to/source.zip"
替换为实际的源文件路径。
希望对你有所帮助!
内容由零声教学AI助手提供,问题来源于学员提问