Zaimplementowałem własne kopiowanie plików przy pomocy:
[DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Auto)]
[return: MarshalAs(UnmanagedType.Bool)]
static extern unsafe bool CopyFileEx(string lpExistingFileName, string lpNewFileName, CopyProgressRoutine lpProgressRoutine, IntPtr lpData, Boolean* pbCancel, CopyFileFlags dwCopyFlags);
Wszystko działa ładnie, nie wiem jednak jak [dobrze] rozwiązać jeden problem. Gdy ktoś anuluje kopiowanie pliku, a kopiowany plik miał zastąpić jakiś stary, chcę przywrócić ten stary. Jak to zrobić dobrze? Stary gdzieś schować? Jak, tak aby nie zajmowało dużo czasu odzyskanie tego pliku?