2017. 3. 3. 13:56ㆍIT-개발/winapi 및 MFC
폴더 들을 포함한 파일들 전체의 무조건 이동, 동일 폴더 명이 보이면 그냥 합침.
string strPreNetLinkDownPath = "C:\DDD";
string strNextNetLinkDownPath = "C:\AAA"; // C:\AAA\DDD 라는 폴더가 이미 있음.
SHFILEOPSTRUCT shfo;
TCHAR pszTo[1024] = {0,}; // 이렇게 따로 Buffer를 잡아서 처리해주지 않으면 이상하게 동작않함.
TCHAR pszFrom[1024] = {0,};
TCHAR pszTitle[MAX_PATH] = _T("파일이동");
memset(pszTo, 0, sizeof(pszTo));
memset(pszFrom, 0, sizeof(pszFrom));
_tcscpy(pszTo, strNextNetLinkDownPath.data());
_tcscpy(pszFrom, strPreNetLinkDownPath.data());
ZeroMemory(&shfo, sizeof(shfo));
if (AfxGetMainWnd() != NULL)
shfo.hwnd = AfxGetMainWnd()->m_hWnd;
else
shfo.hwnd = NULL;
shfo.wFunc = FO_MOVE; // Copy sample은 많은데, Move sample은 작더라
shfo.lpszProgressTitle=pszTitle;
shfo.pTo=pszTo;
shfo.pFrom=pszFrom;
shfo.fFlags=FOF_NOCONFIRMATION|FOF_NOCONFIRMMKDIR|FOF_SILENT|FOF_NO_UI|FOF_NOERRORUI;
int ret = SHFileOperation(&shfo); // ret으로 동작의 성패를 보장할 수 없다.
'IT-개발 > winapi 및 MFC' 카테고리의 다른 글
(펌) DLL의 리소스 사용하기 (0) | 2018.02.13 |
---|---|
MFC Class 이름 변경 (0) | 2017.03.10 |
OS - x64 - GetSystemDirectory (펌) (0) | 2017.02.22 |
Window Version 구하기 (0) | 2017.02.16 |
COM DLL만으로 tlb파일 생성및 COM사용하기 (펌) (0) | 2016.08.24 |