Qt在linux下怎么样把文件删除到回收站

何以问天涯 2019-01-17 08:24:47
Qt在linux下怎么样把文件删除到回收站
...全文
1029 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
linux 没有原生回收站。回收站都是桌面环境管理的。
何以问天涯 2019-02-03
  • 打赏
  • 举报
回复
引用 1 楼 juelianhuayao 的回复:
linux下Qt可以直接调用终端命令,在Qt中调用system("mv 文件 ~/.local/share/Trash/files/")函数即可,其中~/.local/share/Trash/files/为ubuntu系统的回收站路径,其他系统路径可能不一样
windows下用下面的有时删除不了,这是为什么?
wchar_t *MainWindow::toWCharT(QString a_string)
{
return const_cast<wchar_t *>(reinterpret_cast<const wchar_t *>(a_string.utf16()));
}
bool MainWindow::recycleFile(const QString &a_filename)
{
bool ret = true;
SHFILEOPSTRUCT opRecycle;
opRecycle.hwnd = nullptr;
opRecycle.wFunc = FO_DELETE;
opRecycle.pFrom = toWCharT(a_filename);
opRecycle.pTo = L"\0\0";
opRecycle.fFlags = FOF_ALLOWUNDO; //此Flag表示送进回收站
opRecycle.hNameMappings = nullptr;
opRecycle.lpszProgressTitle = L"Recycling files...";

if(SHFileOperation(&opRecycle) != 0)
{
ret = false;
}
if(opRecycle.fAnyOperationsAborted)
{
ret = false;
}
return ret;
}
何以问天涯 2019-01-28
  • 打赏
  • 举报
回复
好的QMimeData怎么传QPixmap呢?
加盾男爵 2019-01-18
  • 打赏
  • 举报
回复
linux没有回收站,只有/dev/null,个发行版本的回收站是各个发行版自己捣鼓出来的,具体要查询下各个发行版的文档
juelianhuayao 2019-01-18
  • 打赏
  • 举报
回复
linux下Qt可以直接调用终端命令,在Qt中调用system("mv 文件 ~/.local/share/Trash/files/")函数即可,其中~/.local/share/Trash/files/为ubuntu系统的回收站路径,其他系统路径可能不一样

16,235

社区成员

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

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