30 lines
1 KiB
Python
30 lines
1 KiB
Python
import win32file, win32api
|
|
import os
|
|
|
|
|
|
def ProgressRoutine(TotalFileSize, TotalBytesTransferred, StreamSize, StreamBytesTransferred,
|
|
StreamNumber, CallbackReason, SourceFile, DestinationFile, Data):
|
|
print(Data)
|
|
print(TotalFileSize, TotalBytesTransferred, StreamSize, StreamBytesTransferred, StreamNumber, CallbackReason, SourceFile, DestinationFile)
|
|
##if TotalBytesTransferred > 100000:
|
|
## return win32file.PROGRESS_STOP
|
|
return win32file.PROGRESS_CONTINUE
|
|
|
|
temp_dir=win32api.GetTempPath()
|
|
fsrc=win32api.GetTempFileName(temp_dir,'cfe')[0]
|
|
fdst=win32api.GetTempFileName(temp_dir,'cfe')[0]
|
|
print(fsrc, fdst)
|
|
|
|
f=open(fsrc,'w')
|
|
f.write('xxxxxxxxxxxxxxxx\n'*32768)
|
|
f.close()
|
|
## add a couple of extra data streams
|
|
f=open(fsrc+':stream_y','w')
|
|
f.write('yyyyyyyyyyyyyyyy\n'*32768)
|
|
f.close()
|
|
f=open(fsrc+':stream_z','w')
|
|
f.write('zzzzzzzzzzzzzzzz\n'*32768)
|
|
f.close()
|
|
|
|
operation_desc='Copying '+fsrc+' to '+fdst
|
|
win32file.CopyFileEx(fsrc, fdst, ProgressRoutine, Data=operation_desc, Cancel=False, CopyFlags=win32file.COPY_FILE_RESTARTABLE, Transaction=None)
|