|
function MinDeleteFile(const DirName: string;
const UseRecycleBin: Boolean): Boolean;
var
SHFileOpStruct: TSHFileOpStruct; // 이건 shellapi에 등록되어있습니다.
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;
예전에 어디선가 인터넷웹서핑하다가 챙겨논 코드입니다.
함수호출할때 첫파라미터로 삭제를 원하는 폴더를 넣으시구요
두번째 파라미터로 휴지통에 넣을지 말지를 결정하는 코드입니다.
델파이로 되어있기는한대 C++로 포팅은 금방하실듯합니다.
30억 님이 쓰신 글 :
: 저는 cmd명령으로 폴더를 지웠습니다.
: 방법은 bat를 하나 생성하시구.
: 그 안에
: rmdir 지울디렉토리 /s/q 하시고
: shellexecute로 실행하면 한꺼번에 지워집니다.
: 일일이 지우는게 너무 복잡할거 같아서 꽁수를 썼습니다.
:
: 신인수 님이 쓰신 글 :
: : locke 님의 답변 정말 감사합니다. ^^
: : 결국은 파일을 검색하여 일일이 지운후 폴더를 지우는 방법밖에는 없나보군요.. 여기저기 관련 글을 읽다보니
: : 대부분 다른분들도 그리 코딩을 하시는듯 하군요..
: : 폴더를 강제 삭제시 해당 폴더안에 파일도 모두 날리고싶은데....
: : locke 님 읽어주시고 답변 남겨주신데에 정말 감사합니다.
: : 좋은 하루 보내세요..... (--)(__) 꾸벅...
: :
: :
: :
: : locke 님이 쓰신 글 :
: : : 대상폴더를 루트로 하는 트리구조의 모든 sub폴더를 검색하시어 파일을 먼저 지우고 그후 폴더를 지우는 방식을 쓰셔야 할 듯 싶습니다.
: : :
: : : 검색방법은 특정 폴더를 파라미터로 받아서 그 안에 있는 파일들을 검색해 파일이면 지우고 폴더면 다시 자신에게 그 폴더를 파라미터로 재귀호출해주는 함수를 하나 만드시면 될거 같습니다.
: : :
: : : 이도 저도 싫으시면 FAT(File Allocation Table)에서 해당 폴더의 정보를 날리시는 고급(!) 방법을 연구하셔도..
: : :
: : : -locke
: : :
: : : 신인수 님이 쓰신 글 :
: : : : BCB 막시작하는 1인입니다... ^^;;
: : : :
: : : : 현재 날자를 받아와 각 폴더를 생성하였는데
: : : : ex) 2010 -> 10 -> 29
: : : : 이런식으로 하위 폴더를 생성하였습니다.
: : : : 각폴더 삭제도 구현해보았는데
: : : : 폴더안에 파일이 있으면 삭제가 안되는걸 알아 지우려 고민중입니다.
: : : : 폴더안에 모든 파일을 삭제하는 방법좀 일러주시면 감사하겠습니다.
: : : :
: : : : 도와주세요. ^^;;
|