QFile::copy create 会创建文件的副本还是将内容从一个文件移动到另一个文件?
Posted
技术标签:
【中文标题】QFile::copy create 会创建文件的副本还是将内容从一个文件移动到另一个文件?【英文标题】:Will QFile::copy create create a copy of the file or move the contents from one file to another? 【发布时间】:2012-05-11 18:26:41 【问题描述】:我正在尝试使用 C++/Qt 将文件从一个位置复制到另一个位置(在设备中)
我试过 QFile::copy("path1/file","path2");
我想将path1中的文件复制到path2。 path2 没有该文件。
我只是想知道这是否是正确的方法,因为上面的代码似乎不起作用。
另外,我应该在尝试复制之前打开文件吗?需要帮助!
【问题讨论】:
另外,您是否在文档中验证了您使用此功能的计划是否受支持? doc.trolltech.com/4.7/qfile.html#copy 【参考方案1】:如果您想将path1/file
复制到具有相同文件名的path2
,您需要这样做:
QFile::copy("path1/file", "path2/file");
复制允许您更改文件的名称。示例:
QFile::copy("path1/file1", "path1/file2");
这就是为什么您需要两次都包含文件名的原因。此外,不必先打开文件。为了回答标题问题,它复制了文件。 QFile::rename()
移动内容。
【讨论】:
谢谢!我还有一个问题。如果文件已存在于目标位置,则此 Qfile 副本将返回 false。我想第一次复制文件,每次修改源文件的内容。在第二种情况下,我必须使用 QFile rename()? 没有。如果文件已存在,则复制和重命名都将失败。您必须先删除目标文件。 这可以用来将资源文件复制到某个路径吗?例如,QFile::copy(":/default.jpg", "data.jpg");
可能吗?
@ThePeacefulCoder 您应该将其作为一个新问题提出。不幸的是,我不知道答案。
@ThePeacefulCoder 此链接声称它确实适用于复制资源文件:forum.qt.io/topic/13131/…以上是关于QFile::copy create 会创建文件的副本还是将内容从一个文件移动到另一个文件?的主要内容,如果未能解决你的问题,请参考以下文章
QFile::copy 是不是将源文件权限保留在复制的文件中?
为啥 NAudio 会创建一个两倍于应有大小的 WAV 文件?