파일 의 존 재 를 어떻게 판단 합 니까 (vc)

최근 의 항목 은 파일 에 대한 작업 이기 때문에 다소 파일 작업 에 관 한 문제 가 발생 합 니 다. 가장 많이 사용 하 는 것 은 파일 열기, 파일 읽 기, 쓰기, 파일 의 존재 여 부 를 판단 하 는 것 입 니 다. 본 고 는 파일 읽 기, 쓰기 에 대해 서 는 토론 하지 않 고 파일 의 존재 여 부 를 판단 하 는 데 만 사 용 됩 니 다.
C\# 에 CFile 이라는 것 이 있 습 니 다. 그 방법 을 통 해 CFile. Exit (Filename) 는 파일 이 존재 하 는 지 직접 판단 할 수 있 지만 VC 에 서 는 이 방법 이 없습니다.
처음에 저 는 파일 변 수 를 정의 한 다음 에 판단 할 파일 을 열 었 습 니 다. 0 으로 돌아 가면 이 파일 이 존재 하지 않 는 다 는 것 을 의미 합 니 다. 이런 방법 은 두 단계 가 필요 합 니 다. 첫 번 째 단 계 는 파일 류 의 변 수 를 정의 하고 두 번 째 단 계 는 이 변수 로 파일 을 직접 열 어 반환 값 을 보고 0 이면 존재 하지 않 는 다 는 것 을 의미 합 니 다. 이런 방법 도 비교적 간단 합 니 다.그러나 이렇게 하면 일부 자원 을 낭비 할 수 있 습 니 다. 그리고 이 파일 이 존재 한다 면 판단 이 끝 난 후에 파일 을 닫 아야 합 니 다. 닫 지 않 으 면 문제 가 생 길 수 있 습 니 다. VC 에 여러 개의 파일 류 가 있 습 니 다. 당신 이 좋아 하 는 것 을 보고 어떤 것 을 사용 하 는 지 보 겠 습 니 다. 제 가 사용 하 는 방법 코드 는 다음 과 같 습 니 다.
   CStdioFile fileTemp2;   if ((fileTemp2.Open(FileName,CFile::modeRead)==0))   {   //이 파일 이 존재 하지 않 을 때       Message Box ( T);    }
나중에 또 다른 방법 인 GetFileAttributes 를 발 견 했 습 니 다. 변 수 를 정의 하지 않 고 파일 이 존재 하 는 지 직접 판단 할 수 있 습 니 다. 방법 은 다음 과 같 습 니 다.
if(GetFileAttributes("C://Test.bmp") == -1){    MessageBox (NULL, T ("파일 이 존재 하지 않 습 니 다!"), T ("시스템 오류"), MB ICONERROR);}
이 방법 은 매우 쓰기 좋 으 니 사용 을 건의 합 니 다.
물론 다른 방법 도 있 습 니 다. 저도 사용 하지 않 았 습 니 다. 좋 은 물건 이 하나 있 으 면 되 기 때 문 입 니 다. 그러나 상기 방법 이 당신 의 요 구 를 만족 시 키 지 못 할 경우 다음 과 같은 방법 을 시도 해 볼 수 있 습 니 다. (저 는 테스트 하지 않 았 습 니 다. 인터넷 에서 찾 습 니 다)
<1>:  CFileFind find;BOOL IsFinded = find.FindFile("C://Test.bmp");
if(IsFinded){//  }
else{//   }
 CFileFind  FindFile() FindNextFile      ,     
C:/    ,       .         msdn
<2>:  1、BOOL PathFileExists(LPCTSTR lpszPath); SHELL API
2、DWORD GetFileAttributes(LPCTSTR lpFileName);   API
<3>: 1.CFileFind f;  
(           )
if (f.FindFile(g_szCalFileName,0))
{ //      }
else{    
MessageBox("File Not Exsit!","  ",MB_OK+MB_ICONINFORMATION);    
return;}
2.       ,    :
CFile file;
if(!file.Open(filepath,CFile::modeRead))
MessageBox("error");
else{
file.Close();
return;}

좋은 웹페이지 즐겨찾기