From 19ce17e295f51463b7f7029087cea3302dac62c2 Mon Sep 17 00:00:00 2001 From: Johannes Anderwald Date: Tue, 19 Aug 2008 13:14:25 +0000 Subject: [PATCH] * Restore file with SHFileOperation svn path=/trunk/; revision=35451 --- reactos/lib/recyclebin/recyclebin_v5.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/reactos/lib/recyclebin/recyclebin_v5.c b/reactos/lib/recyclebin/recyclebin_v5.c index 385f312fb2e..1cacc925adb 100644 --- a/reactos/lib/recyclebin/recyclebin_v5.c +++ b/reactos/lib/recyclebin/recyclebin_v5.c @@ -472,6 +472,7 @@ RecycleBin5_RecycleBin5_Restore( PINFO2_HEADER pHeader; DELETED_FILE_RECORD *pRecord, *pLast; DWORD dwEntries, i; + SHFILEOPSTRUCTW op; TRACE("(%p, %s, %p)\n", This, debugstr_w(pDeletedFileName), pDeletedFile); @@ -496,7 +497,12 @@ RecycleBin5_RecycleBin5_Restore( if (pRecord->dwRecordUniqueId == pDeletedFile->dwRecordUniqueId) { /* Restore file */ - if (!MoveFileW(pDeletedFileName, pDeletedFile->FileNameW)) + ZeroMemory(&op, sizeof(op)); + op.wFunc = FO_COPY; + op.pFrom = pDeletedFileName; + op.pTo = pDeletedFile->FileNameW; + + if (!SHFileOperationW(&op)) { UnmapViewOfFile(pHeader); return HRESULT_FROM_WIN32(GetLastError());