2010년 4월 1일 목요일

파일삭제 _unlink를 쓰면서 일어난 문제

_unlink 함수를 이용하여 파일 하나를 삭제하고 싶은데...

"Access is denied"가 자꾸 뜬다...

처음엔.. 내가 삭제하려 하는 파일을 close하지 않아서 그런가 싶어서...

파일을 다시 한번 오픈했다가 fclose(tempfp) 함수까지 삽입하였는데도 여전하다.

 

근데..

프로그램을 종료했다 다시 실행시키고..

_unlink 함수만 딸랑 실행하면 잘만 지워댄다.

 

왜 내가 원하는 방식으론 접근을 못하는걸까??????

 

 if((tempfp=fopen(cTempFilePath, "w"))!=NULL)
  {
   tempfileFlag = 1;
  }
  if(tempfileFlag)
  {
   fclose(tempfp);
   if (_unlink(cTempFilePath))
   {
    switch (errno)
    {
    case EACCES: AfxMessageBox("Access is denied"); break;
    case ENOENT: AfxMessageBox("Could not find"); break;
    default:  AfxMessageBox("Unknown error."); break;
    }
   }
   else
   {
    AfxMessageBox("Deleted");
   }
  }