关于Qt QFile::remove()函数没有效果的问题的请教

就像涛 2019-09-03 10:20:18
我使用QFile::remove()函数删除文件,返回true但是文件并没有被删除,只有最后一个的时候才能被正确的删除,请问这是什么原因呢?
QFile file(path);
if (file.remove() == false)
m_executor->execute(app_runing_log, "文件删除失败!"+path);

path=“./AppData/Local/123456789.sen”
...全文
2197 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
浮一大白开水 2019-09-03
  • 打赏
  • 举报
回复
你是不是使用QDir打开了文件所在的文件夹?可以试一下QDir中的remove接口试一下。另外./AppData/目录下你需要确认一下访问权限的问题。
就像涛 2019-09-03
  • 打赏
  • 举报
回复
引用 2 楼 浮一大白开水 的回复:
不应该会出现此问题,你在QFile这时将path跟踪打印一下看看。排除其它的因素。
打印过的,路径是正常的,我也奇怪这个地方为什么会这样,可就是只能成功删除一个,而且删除文件夹也存在这个情况,只是刚好相反,QDir::removePath()删除文件夹的时候(空的),最后一个总是删除不掉,返回值、路径都是正确的。
浮一大白开水 2019-09-03
  • 打赏
  • 举报
回复
不应该会出现此问题,你在QFile这时将path跟踪打印一下看看。排除其它的因素。
就像涛 2019-09-03
  • 打赏
  • 举报
回复
还有就是,如果我不是用path代替,直接给"./AppData/Local/123456789.sen"就能成功删除
走好每一步 2019-09-03
  • 打赏
  • 举报
回复
引用 6 楼 qq_38065745 的回复:
改绝对路径了没事了,不过我觉得应该不是这个问题,但是还没有找到具体问什么,可能是我路径有问题吧
不用想那么多,用绝对路径总没有错。 用相对路径,有的系统可以,有的系统准有问题
就像涛 2019-09-03
  • 打赏
  • 举报
回复
改绝对路径了没事了,不过我觉得应该不是这个问题,但是还没有找到具体问什么,可能是我路径有问题吧
走好每一步 2019-09-03
  • 打赏
  • 举报
回复
引用 1 楼 qq_38065745 的回复:
还有就是,如果我不是用path代替,直接给"./AppData/Local/123456789.sen"就能成功删除
删除文件的时候最好用绝对路径 QDir转成 absolutepath

21,494

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧