Вниз
Скачать: 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.013 c
3-37494
dimm22
2003-12-15 13:17
2004.01.13
Максимальный размер файла IB. Во многих источниках видел, что


3-37505
Виталя
2003-12-17 10:01
2004.01.13
Как засунуть exe-файл в БД.


8-37804
BOA_KAA
2003-09-05 14:48
2004.01.13
Сравнение OpenGL и DirectX


3-37510
redd
2003-12-16 21:56
2004.01.13
Как сделать Pack таблице из делфи???


4-37975
STPiter
2003-11-07 18:22
2004.01.13
Хук на клаву. Глюки в ворде




   Наверх