재귀를 이용한 폴더 복사
pOverWrite 가 True이면 덮어쓰기, False이면 덮어쓰지 않고 건너감
// pSourceDir 폴더를 pDestinationDir 경로로 복사
// pSourceDir : 소스 디렉토리, pDestinationDir : 목적 디렉토리, pOverWrite : 덮어쓰기 유무
procedure CopyDirectoryAll(pSourceDir, pDestinationDir: string; pOverWrite: Boolean);
var
TempList : TSearchRec;
begin
if FindFirst(pSourceDir + '\*', faAnyFile, TempList) = 0 then
begin
if not DirectoryExists(pDestinationDir) then
ForceDirectories(pDestinationDir);
repeat
if ((TempList.attr and faDirectory) = faDirectory) and not (TempList.Name = '.') and not (TempList.Name = '..') then
begin
if DirectoryExists(pSourceDir + '\' + TempList.Name) then
begin
CopyDirectoryAll(pSourceDir + '\' + TempList.Name, pDestinationDir + '\' + TempList.Name, pOverWrite);
end;
end
else
begin
if not pOverWrite then
begin
if FileExists(pSourceDir + '\' + TempList.Name) then
begin
CopyFile(pChar(pSourceDir + '\' + TempList.Name), pChar(pDestinationDir + '\' + TempList.Name), True);
end;
end
else
begin
if FileExists(pSourceDir + '\' + TempList.Name) then
begin
CopyFile(pChar(pSourceDir + '\' + TempList.Name), pChar(pDestinationDir + '\' + TempList.Name), False);
end;
end;
end;
until FindNext(TempList) <> 0;
end;
end;
'Program > Delphi' 카테고리의 다른 글
[Delphi] Clipboard의 이미지 불러오기 (0) | 2014.07.02 |
---|---|
[Delphi] Image파일을 확장자별로 불러오기 (0) | 2014.07.02 |
[Delphi] 스크린 기준 컴포넌트 객체의 좌표 구하기 (0) | 2013.12.27 |
[Delphi] 레지스트리(Registry) 등록 (0) | 2013.09.03 |
[Delphi] 재귀함수를 이용한 폴더 삭제 (0) | 2013.01.11 |