Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.01.13;
Скачать: 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 вся ветка

Текущий архив: 2004.01.13;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.016 c
14-37899
Shluz
2003-12-21 20:56
2004.01.13
line2003.ru


1-37728
Adil Aliyev
2003-12-30 01:13
2004.01.13
Ярлык


1-37749
Titeha
2003-12-30 08:20
2004.01.13
Изменения в TComboBox и TDateTimePicker


14-37915
Артём Запаранюк
2003-12-20 21:53
2004.01.13
Какие спецы пишут сайты органов власти?


1-37764
miracle_fox
2003-12-29 16:51
2004.01.13
помогите новичку (работа с ListBox)