2

我将使用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();

编辑: 我有 QListView 占用一个QFileSystemModel. 我尝试将一个文件从这个 ListView 拖到 QLabel。对于 QLabel,设置了目标路径。在放置事件中,我尝试复制文件。

4

1 回答 1

2

QFile::copy使用QFile::open但覆盖错误消息open会因"Cannot open %1 for input"你得到的无用而给出。

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

qDebug()<<file.open(QFile::ReadOnly);
qDebug()<<file.errorString();
于 2013-07-17T23:03:13.937 回答