QFile :: copy说“无法打开源文件进行输入”?

时间:2013-07-17 18:24:35

标签: qt qfile

我将使用QFile::copy函数复制一个文件,但此函数始终返回false并且errorString表示:

"Cannot open D:/tmp/buf34.txt for input" 

我尝试使用管理员权限运行此程序,但没有任何更改。我的代码非常简单:

  QString source = url.toLocalFile();
  QString destination = _dir.absolutePath()
            + QString("/%1").arg(QFileInfo(source).fileName());
  qDebug()<<"Cp from :" << source << " to : "<< destination;
  QFile file(source);
  qDebug()<<file.copy(destination);
  qDebug()<<file.errorString();

修改 我有一个QFileSystemModel占用的QListView。我尝试将此ListView中的一个文件拖到QLabel。对于QLabel,设置目标路径。在drop事件中,我尝试复制文件。

1 个答案:

答案 0 :(得分:2)

QFile::copy使用QFile::open,但会覆盖您所获得的无用open错误消息"Cannot open %1 for input"

因此,您应该尝试自己打开文件以获取原始错误消息:

qDebug()<<file.open(QFile::ReadOnly);
qDebug()<<file.errorString();