21xrx.com
2024-12-22 18:21:30 Sunday
登录
文章检索 我的文章 写文章
C++如何读取文件大小?
2023-06-26 16:26:35 深夜i     --     --
C++ 读取 文件大小

C++作为一种广泛使用的编程语言,其在文件操作方面也有着重要的作用。当我们需要获取文件大小时,C++可以通过以下几种方法来实现。

1.使用标准库函数

在C++中,可以使用标准库函数来获取文件大小。其中,利用fstream头文件中的fstream类对象可以打开文件,通过seekg函数和tellg函数可获取文件指针位置和大小。

示例代码如下:


#include <iostream>

#include <fstream>

using namespace std;

int main()

{

  ifstream stream("file.txt", ios::binary | ios::ate);

  streampos size = stream.tellg();

  cout << "文件大小为:" << size << " 字节" << endl;

  return 0;

}

2.使用Windows API函数

当需要用Windows API函数获取文件大小时,可以使用GetFileSize函数。该函数在Windows.h头文件中,接受一个文件句柄作为参数,并返回文件大小。

示例代码如下:


#include <iostream>

#include <windows.h>

using namespace std;

int main()

{

  HANDLE hFile = CreateFile("file.txt", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);

  if (hFile == INVALID_HANDLE_VALUE)

    cout << "文件打开失败" << endl;

    return 0;

  

  DWORD dwFileSize = GetFileSize(hFile, NULL);

  cout << "文件大小为:" << dwFileSize << " 字节" << endl;

  CloseHandle(hFile);

  return 0;

}

需要注意的是,在使用Windows API函数时需要先打开文件,并指定打开方式。

综上所述,C++ 读取文件大小有两种常见的方法,分别是标准库函数和Windows API函数。选择哪种方法取决于实际应用场景以及个人的编程习惯。无论选择哪种方法,都需要注意文件打开方式和关闭文件句柄等细节问题。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复