with a new method can you implement this behavior. At the moment copy:new: will use the Win API function CopyFileA, create a new method and use the Win API function CopFileEx. You can give a Callback method to CopyFileEx, CopyFileEx will call this function and you can implement a progressbar or what ever. Sorry, I have not create a method, I think it's more or less "simple".
At the other side, maybe is a good old byte for byte copy routine implemented an alternative.
For mor information for CopyFileEx and CopyProgressRoutine look at Win API Reference.
BOOL CopyFileEx(
LPCWSTR lpExistingFileName, // pointer to name of an existing file
LPCWSTR lpNewFileName, // pointer to filename to copy to
LPPROGRESS_ROUTINE lpProgressRoutine, // pointer to the callback function
LPVOID lpData, // to be passed to the callback function
LPBOOL pbCancel, // flag that can be used to cancel the operation
DWORD dwCopyFlags // flags that specify how the file is copied
);
DWORD WINAPI CopyProgressRoutine(
LARGE_INTEGER TotalFileSize, // total file size, in bytes
LARGE_INTEGER TotalBytesTransferred, // total number of bytes transferred
LARGE_INTEGER StreamSize, // total number of bytes for this stream
LARGE_INTEGER StreamBytesTransferred, // total number of bytes transferred for this stream
DWORD dwStreamNumber, // the current stream
DWORD dwCallbackReason, // reason for callback
HANDLE hSourceFile, // handle to the source file
HANDLE hDestinationFile, // handle to the destination file
LPVOID lpData // passed by CopyFileEx
);