C++ 文件相关操作(持续更新)

来源:互联网 发布:java连接ldap实例 编辑:程序博客网 时间:2024/06/04 23:24
//获取文件大小BOOL GetFileSize(IN LPCTSTR lpszFileName, OUT ULONGLONG& ullFileSize ){       HANDLE hFile = CreateFile( lpszFileName, GENERIC_READ,                     FILE_SHARE_READ,NULL, OPEN_EXISTING, 0, NULL );//打开文件       if( hFile == INVALID_HANDLE_VALUE )              return FALSE;       BY_HANDLE_FILE_INFORMATION fileInfo;//用于存放文件信息的结构       if( !GetFileInformationByHandle( hFile, &fileInfo ) )       {              CloseHandle( hFile );              return FALSE;       }       ullFileSize = fileInfo.nFileSizeHigh;       ullFileSize = ullFileSize << 32;       ullFileSize += fileInfo.nFileSizeLow;       CloseHandle(hFile);       return TRUE;}

C++删除文件

    CString strPath =_T("E://1.txt");    if( !_taccess( strPath, 0 ) ){//文件存在        printf("文件存在\n");        int nRet = ::DeleteFile(strPath);        if( nRet ){            printf("文件删除成功\n");        }else{                int err = ::GetLastError();                printf("文件删除失败,错误码:[%d]\n",err);        }    }else{        printf("要删除的文件不存在\n");    }

C++创建多级目录

BOOL CreateMultiDirectory( CString strDir ){    if( strDir.Right(1)!=_T("\\") )        strDir += _T("/");    //替换路径中所有的\\为/    if( strDir.Find(_T("\\")) != -1 )    {        strDir.Replace(_T("\\"),_T("/"));    }    int nPos = strDir.Find( _T("/") );    if( -1 == nPos )        return FALSE;    while( -1 != nPos )    {        CString strDirCur;        strDirCur = strDir.Left( nPos + 1 );        if( 0 != _taccess( strDirCur,0 ) )//判断文件是否存在        {            if( !::CreateDirectory( strDirCur, NULL ) )            {                printf("CreateDirectory Error,ErrorCode = %d",::GetLastError());                return FALSE;            }            printf( "CreateDirectory[%s] Success.", strDirCur );        }        nPos = strDir.Find( _T("/"), nPos+1 );          }    return TRUE;}

以下是我的个人公众号,作为技术分享使用,欢迎添加交流:
这里写图片描述

原创粉丝点击