#define IsFileExist(lpszFileName) (::GetFileAttributes((lpszFileName)) != 0xFFFFFFFF)

解决方案 »

  1.   

    用FindFirstFile()

    CFile::Open()如果是FALSE 册没有
      

  2.   

    方法很多啊:
    1.WIN32_FIND_DATA wfd;
    HANDLE hFind = FindFirstFile("myfile.txt",&wfd);
    if (hFind!=INVALID_HANDLE_VALUE) // File Exists
    2.CFileStatus fs;
    if (CFile::GetStatus("myfile.txt",rs)) // File Exists
    3.用OPEN_EXISTING标志调用CreateFile,如果成功说明文件存在.
      

  3.   

    FILE *fp;
    if (fp=fopen("filename.???","r")==NULL)
       {
         //文件不存在时的代码
       }
    else
       {
         //文件存在时的代码
       }
      

  4.   

    to cb1010,呵呵呵,看来你跟俺一样还停留在DOS程序设计时代,你用的好像是高层次I/O(即缓冲型的输入输出),我来个低层I/O(非缓冲型)吧:)
    ....
    void main(int argc,char *argv[])
    {
    int fdr;
    if((fdr=open(argv[1],O_RDONLY))<=0)
     {
      printf("File %s doesn't exist!",argv[1]);
      exit(1);
      }
    else
      {
       printf("file %s does exist!",argv[1]);
       exit(1);
      }
    .....
    }
      

  5.   

    VC中有一个CFileFind类,用他的成员函数CFileFind::FindFile可以判断指定文件是否存在(该函数返回值为BOOL型)。此类包装了YuHao提到的以及其他文件查找API,用起来比较容易:)。wyzegg也有提到此类。
      

  6.   

    BOOL IsFileExist(CString strFileName)
    {
    CFileStatus status; if ( !CFile::GetStatus(strFileName, status) ) return FALSE;
    if ( status.m_size <= 0 ) return FALSE; return TRUE;}
      

  7.   

    if (0 != access(strFileName,0)){
      //文件不存在时的代码
    }
    else{
      //文件存在时的代码
      

  8.   

    就用最经典的ANSI C++就够了嘛,ifstream流.
      

  9.   

    Windows API的OpenFile有一个标志是专门用来测试一个文件是否存在的:OF_EXIST