【发布时间】:2013-07-17 18:24:34
【问题描述】:
我将使用 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,设置了目标路径。在放置事件中,我尝试复制文件。
【问题讨论】:
-
加
qDebug() << "source exists: " << QFileInfo(source).exists();看看源文件是否存在如何? -
不,我确定目标中不存在源文件。错误提示无法打开源文件。
-
源文件是如何到达那里的?它是由其他仍然可以打开文件的程序编写的吗?
-
我设置了一个 QFileSystemModel 模型,其中包含一个 listView 的路径。然后我将一个文件从这个 listView 拖到一个标签(为这个标签设置了目的地)。在 drop 结束时,我尝试将从 listView 中选择的文件复制到标签的目录!
-
@saeed 我猜这个文件是被另一个
QFile::open打开的,如果不是:"source" 存在吗?您不能复制一个不存在的文件。如果有,您是否正在尝试在具有权限的目录中录制(Windows Vista、Windows 7 等)?