急!怎样判断一个文件或文件夹是否存在?

解决方案 »

  1.   

    /* ACCESS.C: This example uses _access to check the
     * file named "ACCESS.C" to see if it exists and if
     * writing is allowed.
     */#include  <io.h>
    #include  <stdio.h>
    #include  <stdlib.h>void main( void )
    {
       /* Check for existence */
       if( (_access( "ACCESS.C", 0 )) != -1 )
       {
          printf( "File ACCESS.C exists\n" );
          /* Check for write permission */
          if( (_access( "ACCESS.C", 2 )) != -1 )
             printf( "File ACCESS.C has write permission\n" );
       }
    }
      

  2.   

    http://expert.csdn.net/Expert/topic/1625/1625535.xml?temp=.7201502
      

  3.   

    see this
    两个办法:
    1、
        CFileFind f;
        if(f.FindFile("c:\\temp"))
            AfxMessageBox("存在");
            //Directory exist.
        else
            AfxMessageBox("不存在");
            //Not exist.2、
        if(_access("c:\\temp", 0) == 0){
            AfxMessageBox("存在");
        }
        else{
            AfxMessageBox("不存在");
        } by the way
    检查目录并且创建//一个小函数,不管原来有没有存在都可以,没考虑只读属性的盘
    void CBookSet::CreateDirTree(LPCTSTR path)
    {
        CString sFullPath = path;
        
        int iPos = sFullPath.Find(_T("\\\\")) + 1;
        if(iPos != 0)
        {    //    support \\192.168.53.136\vssworkpath\test2\...
            iPos = sFullPath.Find(_T('\\'), iPos + 1);
            iPos = sFullPath.Find(_T('\\'), iPos + 1);
        }
        else
        {    //    support c:\test2\...
            iPos = sFullPath.Find(_T('\\'), iPos + 1);
        }    while( -1 != (iPos = sFullPath.Find(_T('\\'), iPos + 1)) )
        {
            ::CreateDirectory(sFullPath.Left(iPos), NULL);
        }
    }
      

  4.   

    如何判断文件是否存在方法一、POFSTRUCT lpOpenBuf=new OFSTRUCT;
    HFILE hFile=OpenFile(strFileName,lpOpenBuf,OF_EXIST);
    if(hFile!=HFILE_ERROR)
    {
    // file exist. 
    }方法二、#include 
    CString m_Edit=“f:\\test.txt”;//从Edit得到的字符串
    ifstream infile(m_Edit);
    if(!infile)
    {
    AfxMessageBox("该文件不存在");
    }方法三、char *lpszStr="C:\WINDOWS\system32\MSCAL.OCX";
    PathFileExists(lpszStr);方法四、
    FILE *fp=NULL;
    fp = fopen( "C:\WINDOWS\system32\MSCAL.OCX", "r" );
    if( fp != NULL )
    {
    MessageBox(NULL, "这个文件已经存在!", "Tips", MB_OK );
    return ;
    }方法五、
    HANDLE hFind;
    WIN32_FIND_DATA dataFind;
    BOOL bMoreFiles = TRUE;//Find the first file in the main directory
    hFind = FindFirstFile(TEXT("C:\\WINDOWS\\system32\\MSCAL.OCX"),&dataFind);
    if(hFind) //若存在,则hFind == TRUE
    {
    }
    else
    {
    }
    FindClose(hFind);方法六、CString strPath("C:\\a.txt");
    HANDLE hFile = NULL;hFile= CreateFile(
    strPath,
    GENERIC_ALL,
    FILE_SHARE_READ,
    NULL,
    OPEN_EXISTING,//判定文件是否存在 FILE_ATTRIBUTE_NORMAL,
    NULL);DWORD dwErr = GetLastError();
    if (dwErr == ERROR_FILE_NOT_FOUND)
    {
    AfxMessageBox("FILE_NOT_FOUND");
    }if (hFile)
    CloseHandle(hFile);
    方法七、
    CFileFind find;
    int result=find.FindFile("C:\\aaa.txt");
    if(result==0)
    {
    AfxMessageBox("文件不存在");
    }
    else
    {
    AfxMessageBox("文件存在");
    }