C++获取文件大小方法的整理

来源:


http://blog.csdn.net/dahaii0/article/details/6826932

#include < iostream> 

#include < io.h> 

#include < sys\stat.h> 

#include < afx.h> 

#include   <fstream>  
#include <string>  

#define _AFXDLL  


using namespace std;  

void main()  

{  


char* filepath = "..\\test.ncb";  

// C++获取文件大小方法一  

struct _stat info;  

     _stat(filepath, &info);  

     int size = info.st_size;  

     cout< < size< < endl;  

// C++获取文件大小方法二  

      FILE* file = fopen(filepath, "rb");  

     if (file)  

     {  

              int size = filelength(fileno(file));  

             cout< < size< < endl;  

             fclose(file);  

       }  

// C++获取文件大小方法三  

        CFile cfile;  

       if (cfile.Open(filepath, CFile::modeRead))  

       {  

          int size = cfile.GetLength();  

           cout< < size< < endl;  

       }  


// C++获取文件大小方法四  

      HANDLE handle = CreateFile(filepath, FILE_READ_EA, 
                                                      FILE_SHARE_READ, 0, OPEN_EXISTING, 0, 0);  

      if (handle != INVALID_HANDLE_VALUE)  

        {  

              int size = GetFileSize(handle, NULL);  

                cout< < size< < endl;  

               CloseHandle(handle);  

          }  


//C++获取文件大小方法五,这种方法不需要打开文件就能直接获取到文件大小

        CFile cfile; 
       CFileStatus rStatus;
       CFile::GetStatus(_T("D:\\Program Files\\360\\360SD\\360hips.exe"),rStatus);
       ULONGLONG ulong = rStatus.m_size;

//C++ 获取文件大小方法六

  string sFileName="c:/aa.txt";  
  ifstream in(sFileName.c_str());  
  in.seekg(0,ios::end);   
  streampos size = in.tellg();  
  in.close();  
  cout<< "文件大小为:"<<size<<" 字节"<<endl;  

//C++ 获取文件方法七 使用Windows API

 //用API函数CreateFile()创建文件句柄
  HANDLE fhadle = CreateFile("file.txt",           //文件名或路径
                                  0,
                                  0,
                                  0,
                                  OPEN_EXISTING, //文件存在则打开并读

                                  0,
                                  0);
  DWORD size = GetFileSize(fhadle,0);
  cout<<"size:"<<size<<endl;
  return 0;

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值