C++ 获得文件大小的方法

2013-11-20 14:23:23 · 作者: · 浏览: 119

  一下是C++中获得文件大小的几种方法:

  #include < iostream>

  #include < io.h>

  #include < sys\stat.h>

  #include < afx.h>

  #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);    }    }