Delphi 1
Копирование файлов II
Как мне скопировать файл?
Вот три способа:
{Данный способ использует файловый поток.} Procedure FileCopy( Const sourcefilename, targetfilename: String ); Var S, T: TFileStream;
BeginS := TFileStream.Create( sourcefilename, fmOpenRead );
try
T := TFileStream.Create( targetfilename,
fmOpenWrite or fmCreate );
try
T.CopyFrom(S, S.Size ) ;
finally
T.Free;
end;
finally
S.Free;
end;
End;{Данный способ для чтения/записи использует блоки памяти.} procedure FileCopy(const FromFile, ToFile: string); var
FromF, ToF: file;
NumRead, NumWritten: Word;
Buf: array[1..2048] of Char;
beginAssignFile(FromF, FromFile);
Reset(FromF, 1); { Размер записи = 1 }
AssignFile(ToF, ToFile); { Открываем выходной файл }
Rewrite(ToF, 1); { Размер записи = 1 }
repeat
BlockRead(FromF, Buf, SizeOf(Buf), NumRead);
BlockWrite(ToF, Buf, NumRead, NumWritten);
until (NumRead = 0) or (NumWritten <> NumRead);
ClloseFile(FromF);
CloseFile(ToF);
end;{Данный способ использует LZCopy, добавьте в список USES модуль LZExpand.} procedure CopyFile(FromFileName, ToFileName: string); var FromFile, ToFile: File;
beginAssignFile(FromFile, FromFileName); { Присваиваем FromFile FromFileName }
AssignFile(ToFile, ToFileName); { Присваиваем ToFile ToFileName }
Reset(FromFile); { Открываем файл для чтения }
try
Rewrite(ToFile); { Создаем файл для записи }
try
{ копируем файл, если возвращена отрицательная величина }
{ возбуждаем исключение }
if LZCopy(TFileRec(FromFile).Handle, TFileRec(ToFile).Handle) < 0
then
raise EInOutError.Create('Ошибка использования LZCopy')
finally
CloseFile(ToFile); { Закрываем ToFile }
end;
finally
CloseFile(FromFile); { Закрываем FromFile }
end;
end;
|
[000621]