Qt中的QFile::copy(source,dest)的实现有时是错误的吗?

Is the implementation of QFile::copy(source, dest) in Qt is faulty sometimes?

本文关键字:实现 错误 dest copy QFile 中的 source Qt      更新时间:2023-10-16
QString source = "E:/source/tty.txt";
QString dest = "E:/Destination";
bool status =QFile::copy(source,dest); // status = false

它不会将源文件复制到目标文件。为什么?

您没有定义目标目录的文件名。

试试这个:

QString source = "E:/source/tty.txt";
QString dest = "E:/Destination/tty.txt";
bool status = QFile::copy(source,dest);

更多信息: 这是一个重载函数。 将文件文件名复制到新名称。如果成功,则返回 true;否则返回假。

如果名称为 newName 的文件已经存在,copy() 返回 false(即 QFile 不会覆盖它)。

http://doc.qt.io/qt-5/qfile.html#copy

通过使用QFile实例和方法QFile::copy(const QString &newName),你可以通过使用QFileDevice::error()如果复制返回false来找出错误代码。

像这样:

QFile source("E:/source/tty.txt");
QString dest = "E:/Destination/tty.txt";
if (!source.copy(dest))
{
qDebug() << "File error" << source.error();  
}