오래된 글들/Gentlecat's Job

파일삭제 함수

젠틀캣 2008. 11. 19. 03:22

//* 파일 삭제 함수 - uses절에 ShellApi추가
//* 사용법 MinDeleteFile(ExtractFilePath(Application.exeName)+'tmp\*.jpg',true);
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 := Application.Handle;
     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;