MFC 기본 함수 중 DeleteDirectory(..) 함수는 폴더 내 파일 또는 하위 디렉토리가 존재할 경우,
해당 폴더까지 전부 삭제 후 동작된다.
따라서 야매로 만든 간단한 방법.
cmd 명령어를 사용하는 코드이다.
void CClientControl::DeleteDirectory_Shell()
{
CString strCmd;
CString strTarget;
// strTarget.Format(삭제할 폴더 경로 + 이름);
// strTarget.Format(_T("E:\\Working\\test_folder")); 예시
strCmd.Format(_T("/c echo Y | cmd /c rd /s %s"), strTarget);
::ShellExecute(NULL, "open", "cmd", (LPCSTR)strCmd, NULL, SW_HIDE);
}
단, rd 명령어는 재귀적으로 지울건지 (Y) 응답을 받는데,
echo Y를 통해 이를 강제로 동작시킨 코드이다. (위험한 커맨드 TOP 10)
따라서 반드시 동작 전 strTarget에 정상적인 경로가 들어가는지 확인하고,
절대경로를 사용하도록 하자.
'Language > C++' 카테고리의 다른 글
리눅스 - 다중 클라이언트 서버 1 (0) | 2024.01.02 |
---|---|
리눅스 - Crypto++ 라이브러리 테스트 (2) | 2024.01.02 |
윈도우 프로그래밍 - DLL 사용 예제 (4) | 2020.05.07 |
윈도우 프로그래밍 - DLL에서 데이터를 전달하는 방법 (Notify) (0) | 2020.05.06 |
윈도우 프로그래밍 - 쓰레드 기반 동기화 예제 (0) | 2020.02.17 |