잘되는거 같은데요.
혹 그 폴더안의 파일중 열려있거나 다른 프로그램이 제어하던가 등록 되었으면 어렵게지만, 일반적으로 해당 폴더내 모든 파일들 부터 지운후 폴더를 지우면 되던데요.
procedure TFrmProjectManage.Btn_DELClick(Sender: TObject);
var
DirInfo: TSearchRec;
r : Integer;
PathName : string;
begin
if Application.MessageBox(pchar('삭제하시겠습니까?'), '삭제확인', MB_YESNO) = IDNO then exit;
screen.Cursor :=crHourGlass;
PathName := 'c:Temphsr';
if DirectoryExists(PathName)then begin
//디렉토리내의 파일부터 지운다
r := FindFirst(PathName +'*.*', FaAnyfile, DirInfo);
While r = 0 do begin
if ((DirInfo.Attr and FaDirectory <> FaDirectory) and (DirInfo.Attr and FaVolumeId <> FaVolumeID)) then
DeleteFile(pChar(PathName +'' + DirInfo.Name));
r := FindNext(DirInfo);
end;
SysUtils.FindClose(DirInfo); // FindFirst에 의해 사용된 메모리를 해제
RemoveDirectory(PChar(PathName));
end;
혹 그 폴더안의 파일중 열려있거나 다른 프로그램이 제어하던가 등록 되었으면 어렵게지만, 일반적으로 해당 폴더내 모든 파일들 부터 지운후 폴더를 지우면 되던데요.
procedure TFrmProjectManage.Btn_DELClick(Sender: TObject);
var
DirInfo: TSearchRec;
r : Integer;
PathName : string;
begin
if Application.MessageBox(pchar('삭제하시겠습니까?'), '삭제확인', MB_YESNO) = IDNO then exit;
screen.Cursor :=crHourGlass;
PathName := 'c:Temphsr';
if DirectoryExists(PathName)then begin
//디렉토리내의 파일부터 지운다
r := FindFirst(PathName +'*.*', FaAnyfile, DirInfo);
While r = 0 do begin
if ((DirInfo.Attr and FaDirectory <> FaDirectory) and (DirInfo.Attr and FaVolumeId <> FaVolumeID)) then
DeleteFile(pChar(PathName +'' + DirInfo.Name));
r := FindNext(DirInfo);
end;
SysUtils.FindClose(DirInfo); // FindFirst에 의해 사용된 메모리를 해제
RemoveDirectory(PChar(PathName));
end;
screen.Cursor :=crdefault;
end;
hsr///////////////////////////////////////