본문 바로가기
Application/Delphi Lecture

폴더 내용 삭제하기

by 현이빈이 2008. 8. 13.
반응형
홍환민씨가 올려논 팁으로 답을 대신합니다.
참고적으로 ShellAPI를 use 절에 포함시키세요.
사용해보니 잘되니다.
더군다나 휴지통에서도 없앨수 있습니다.
//-----------------------------------------------------------------
// 디렉토리 및 파일을 지운다.
// 하위 디렉토리와 모든 파일도 함께 지워진다.
// 인자 설명
//    - DirName : 지울 디렉토리명
//    - UseRecycleBin : 휴지통을 사용할 것인가 여부 (아니면 영구삭제)
//  리턴값 설명
//    - 성공 여부
//-----------------------------------------------------------------
function MinDeleteFile(const DirName : string;
const UseRecycleBin: Boolean): Boolean;
var
SHFileOpStruct: TSHFileOpStruct;
DirBuf: array [0..255] of char;
Directory: string;
begin
try
  Directory := ExcludeTrailingPathDelimiter(DirName);

  Fillchar(SHFileOpStruct, sizeof(SHFileOpStruct), 0);
  FillChar(DirBuf, sizeof(DirBuf), 0);
  StrPCopy(DirBuf, Directory);

  with SHFileOpStruct do
  begin
    Wnd := 0;
    pFrom := @DirBuf;
    wFunc := FO_DELETE;
    if UseRecycleBin = True then
      fFlags := fFlags or FOF_ALLOWUNDO;
    fFlags := fFlags or FOF_NOCONFIRMATION;
    fFlags := fFlags or FOF_SILENT;
  end;

  Result := (SHFileOperation(SHFileOpStruct) = 0);
except
  Result := False;
end;
end;


출처 : 델마당
반응형