Qt在Windows下把檔案送到回收站
阿新 • • 發佈:2018-12-20
廢話不多說,直接上函式。
#include <Windows.h> bool Common::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; } wchar_t *Common::toWCharT(QString a_string) { return const_cast<wchar_t *>(reinterpret_cast<const wchar_t *>(a_string.utf16())); }