#. 정의
int WINAPI SHFileOperation(LPSHFILEOPSTRUCT lpFileOp);

#. LPSHFILEOPSTRUCT 구조
typedef struct _LPSHFILEOPSTRUCT
{
HWND hwnd;
UINT wFunc;
LPCSTR pFrom;
LPCSTR pTo;
FILEOP_FLAGS fFlags;
BOOL fAnyOpsrationAborted;
LPVOID hNameMappings;
LPCSTR lpszProgressTitle;
} SHFILEOPSTRUCT, FAR* LPSHFILEOPSTRUCT;

#. 특징
1. 하나 이상의 파일을 원본경로에서 대상경로로 복사가능
2. 하나 이상을 삭제하여 휴지통으로 보내기
3. 파일 이름 변경
4. 하나 이상의 파일을 원본경로에서 대상경로로 이동가능

#. 구조체 멤버의 의미
hwnd 대화상자의 부모 핸들
wFunc 수행할 작업
pFrom 원본파일 이름을 가진 버퍼
pTo 대상 파일 이름을 가진 버퍼(삭제시 무시)
fFlags 작업에 영향을 주는 플래그들
fAnyOpsrationAborted 반환값:강제종료 or 정상종료
hNameMappings 파일매핑에 관한 객체 핸들
lpszProgressTitle 대화상자의 제목 타이틀

#. 세부 사항
1.wFunc - FO_MOVE / FO_COPY / FO_DELETE / FO_RENAME
2.pFrom - pTo 각각의 파일은 \0으로 구분하고 종료는 \0\0으로 한다.
위에서 pFrom은 와일드 카드를 사용할 수 있다.
3. 파일의 이동과 복사
FOF_MULTIDESFILES - pTo에는 여러개의 파일, 각각 원본과 대응
FOF_SILENT - 피드백 메시지를 없앤다.
FOF_RENAMEONCOLLISION - 같은 경로/이름 이면 자동으로 업데이트
FOR_NOCIONFIRMATION - 혹시 나타나는 메시지박스가 있으면 사용자가 모두 '예'를 선택한 것으로 간주. 예외로 빠진 디렉토리를 생성할 것인지를 묻는데 이는 FOF_NOCONFIRMMKDIR과 조합한다.
FOF_FILESONLY - 서브디렉토리가 있을 경우 파일만 처리핟고 하부는 신경끝.
FOF_SIMPLEPROGRESS - 단순한 화면, 애니메이션만 보이고 파일명 등은 나타나지 않는다.
FOF_NOCONFIRMMKDIR - 대상 디렉토리가 없을 경우 조용히 생성한다.
FOF_NOERRORUI - 어떠한 에러메시지에 대한 대화상자도 생기지 않는다.
FOF_NOCOPYSECURITYATTRIBS - Windows NT 4.0 이상 액티브 데스크 톱을 갖춘 오에스에서 보안속성은 복사되지 않도록 한다

+ Recent posts