델파이 파일복사 방법
unit Unit1;
interface
uses
Windows, Messages, SysUti= False;
end;
end;
// 파일의 존재여부 검사
function CheckSrcF(st: string): boolean;
begin
Resr(tgtfname);
inf.fFlags := 0 or FOF_MULTIDESTFILES;
if SHFileOperation(inf) = 0 tte(srcfname, fmOpenRead);
try
t := TFileStream.Create(tgtfname,fmOpenWrite or fmCreate );
try
t.CopyFrom(s, s.Size);
finally
t.Free;
end;
finally
s.Free;
end;
end;
// Block단위의 복사
function fcMemBlock(srcfname,tgtfname: string): boolean;
var
srcf,tgtf: file;
NumR,NumW: integer;
buff: array[1..2048] of char;
begin
Result := False;
if not CheckSrcF(srcfname) then
System.Exit;
if not OverWriteTgt(srcfname,tgtfname) then
System.Exit;
Result := True;
AssignFile(srcf, srcfname);
Reset(srcf, 1); {Open file, Record size = 1}
AssignFile(tgtf, d;
end;
// 위의 6가지 복사함수를 호출하는 루틴
function DoCopy(srcf,tgtf: string; cpm: TCopyMethod): boolean;
begin
case cpm of
cmMemStream : result := fcMemStream(srcf, tgtf);
cmMemBlock : result := fcMemBlock(srcf, tgtf);
cmLZCopy : result := fcLZCopy(srcf, tgtf);
cmFileStream : result := fcFStream(srcf, tgtf);
cmAPICopy : result := fcAPICopy(srcf, tgtf);
cmSHCopy : result := fcSHCopy(srcf, tgtf);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
// 사용예
if DoCopy('c:\temp\smail.txt', 'c:\zzz\smail.txt', cmSHCopy) then
ShowMessage('복사 성공')
else
ShowMessage('복사 실패');
end;
end.
'Delphi Tip > 파일' 카테고리의 다른 글
Unix파일 (.sam) 델파이에서 읽기 방법 (0) | 2021.10.06 |
---|---|
텍스트 파일읽기 비교 (1) | 2021.10.05 |
파일크기 구하기 (0) | 2021.09.30 |
ini 파일 읽기/생성 (0) | 2021.09.29 |
UTF-8 인코딩 파일 읽기 (0) | 2021.09.28 |
댓글