Вниз
Скачать: CL | DM;

CopyFile   Найти похожие ветки 

 
iNew ©   (2003-12-26 07:15) [0]

function CopyFile(FileName, DestName: TFileName):Integer;
var
CopyBuffer: Pointer; { buffer for copying }
BytesCopied: Longint;
Source, Dest: Integer; { handles }
const
ChunkSize: Longint = 8192; { copy in 8K chunks }
begin
GetMem(CopyBuffer, ChunkSize); { allocate the buffer }
try
Source := FileOpen(FileName, fmShareDenyWrite); { open source file }
try
Dest := FileCreate(DestName); { create output file; overwrite existing }
if Dest < 0 then
try
repeat
BytesCopied := FileRead(Source, CopyBuffer^, ChunkSize); { read chunk }
if BytesCopied > 0 then { if we read anything... }
FileWrite(Dest, CopyBuffer^, BytesCopied); { ...write chunk }
until BytesCopied < ChunkSize; { until we run out of chunks }
finally
FlushFileBuffers(Dest);
FileClose(Dest); { close the destination file }
end;
finally
FlushFileBuffers(Source);
FileClose(Source); { close the source file }
end;
finally
FreeMem(CopyBuffer, ChunkSize); { free the buffer }
end;
Result:=GetLastError;
end;

Если в эту функцию вызвать например так: CopyFile(C:\from\qwerty.txt,C:\to\)
то Result=0, хотя копирования не произойдет. Как сделать так чтоб если
копирования не произошло то Result был >0


 
Palladin ©   (2003-12-26 08:26) [1]

А чем одноименная системная функция не устраивает?


 
Dimka Maslov ©   (2003-12-26 08:32) [2]

Конечно не произойдёт, раз путь к конечному файлу указан не полностью, руки чтоли отвалятся написать c:\to\qwerty.txt
Если всё-таки отваливаются сделай проверку для DestName и добавляй в него имя из FileName.
Или см. Palladin © (26.12.03 08:26) [1]


 
Рамиль ©   (2003-12-26 08:35) [3]


> Result:=GetLastError;

Возвращается ошибка от FreeMem.


 
Anatoly Podgoretsky ©   (2003-12-26 09:12) [4]

Palladin © (26.12.03 08:26) [1]
Тем что та рабочая.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.028 c
1-37745
UNick
2003-12-30 10:53
2004.01.13
Как сделать, чтобы курсор в memo cтановился в самый конец текста


14-37855
Ермек
2003-12-23 01:28
2004.01.13
Руссифицированный IbExpert


1-37671
Amadeus
2003-12-19 00:45
2004.01.13
Функция форматирования текста в Stringgrid


1-37791
Alibaba
2003-12-27 02:55
2004.01.13
TDateTimePicker


3-37532
sirin
2003-12-15 19:13
2004.01.13
DBGrib




   Наверх