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

时间:2017-08-29 09:20:24

标签: c++ qt

QString source = "E:/source/tty.txt";
QString dest = "E:/Destination";

bool status =QFile::copy(source,dest); // status = false

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

2 个答案:

答案 0 :(得分:2)

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

试试这个:

QString source = "E:/source/tty.txt";
QString dest = "E:/Destination/tty.txt";

bool status = QFile::copy(source,dest);

更多信息: 这是一个过载功能。 将文件fileName复制到newName。如果成功则返回true;否则返回false。

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

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

答案 1 :(得分:0)

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

这样的事情:

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