Доброго времени суток.
Требуется сделать удаление файлов в корзину.
Сделал все как представлено тут:
www.cyberguru.ru/cpp-sources/files-folders/pomeshc...
За исключением что у меня используется unicode, и соответсвенно используется структура [B]SHFILEOPSTRUCTW [/B]и функция [B]SHFileOperationW[/B]
C одним файлом все работает шикарно:
CRecycleFile::CRecycleFile() {
memset((SHFILEOPSTRUCTW*)this, 0, sizeof(SHFILEOPSTRUCTW));
// fFlags |= FOF_SILENT; // don't report progress
// fFlags |= FOF_NOERRORUI; // don't report errors
// fFlags |= FOF_NOCONFIRMATION; // don't confirm delete
}
int CRecycleFile::Recycle(wchar_t* pszPath, BOOL toTrash) {
wchar_t buf[32768];
wcscpy(buf, L"C:\\1\\"); // Удаляем папку 1 с диска C
buf[wcslen(buf) + 1]=0;
hwnd = GetForegroundWindow();
wFunc = FO_DELETE; // REQUIRED: delete operation
pFrom = buf; // REQUIRED: which file(s)
pTo = NULL; // MUST be NULL
if (!toTrash) { // if delete requested..
fFlags &= ~FOF_ALLOWUNDO; // ..don't use Recycle Bin
} else { // otherwise..
fFlags |= FOF_ALLOWUNDO; // ..send to Recycle Bin
}
return SHFileOperationW(this);
}
Вопрос, как удалять несколько папок или файлов?
Вот так уже не работает:
wchar_t buf[32768];
wcscpy(buf, L"C:\\1\\\0\0C:\\2\\"); // Хочу удалить папки 1 и 2 с диска C
buf[wcslen(buf) + 1]=0;
Кто может посоветовать, как можно удалять сразу несколько папок или файлов?
По очереди вызывать не вариант. Тем более что сама винда умеет удалять пачками.