SHFileOperation()의 pFrom, pTo를 전달시 CString을 casting하여 전달 or String.GetBuffer()를 통한 전달시 “파일을 찾을 수 없다”라는 Error발생 되는 경우가 발생 됩니다. wchar_t의 wsprintf()를 통한 buffer를 직접 전달하고 전달시 pFrom, pTo마지막에 ‘\0\0’ Double NULL 추가 해줍니다.
wchar_t szToFileName[MAX_PATH ]; wchar_t szFromFileName[MAX_PATH ]; memset(szToFileName , 0 , sizeof (szToFileName)); memset(szFromFileName , 0 , sizeof (szToFileName)); wsprintf (szToFileName, _T("%s" ), dlg. GetPathName()); wsprintf (szFromFileName, _T("%s" ), NDTDataManager:: getInstance().GetSaveDataFileName ()); //복사 SHFILEOPSTRUCT sh ; memset(&sh , 0 , sizeof (SHFILEOPSTRUCT)); sh.hwnd = pMainFrm-> GetSafeHwnd(); sh.wFunc = FO_MOVE; sh.pFrom = szFromFileName; sh.pTo = szToFileName; sh.fFlags = 0 ; if(SHFileOperation (&sh) == 0) { //Move성공시 USS File 삭제 memset (szToFileName, 0, sizeof( szToFileName)); wsprintf (szToFileName, _T("%s" ), NDTDataManager:: getInstance().GetSaveUSSFileName ()); DeleteFile (szToFileName); }