📜  如何在 C++ 中检查文件的大小(1)

📅  最后修改于: 2023-12-03 15:24:08.394000             🧑  作者: Mango

如何在 C++ 中检查文件的大小

在编写 C++ 程序时,我们经常需要读取文件的大小。在这篇文章中,我们将学习如何在 C++ 中检查文件的大小。

使用 stat 函数

在 C++ 中,可以使用 stat 函数来获取文件的信息,包括文件大小、修改时间等。使用 stat 函数需要包含 <sys/stat.h> 头文件。

代码如下:

#include <iostream>
#include <sys/stat.h>

int main() {
    struct stat fileInfo;
    if (stat("file.txt", &fileInfo) != 0) {
        std::cerr << "Error: Unable to get file info.\n";
        return 1;
    }
    std::cout << "File size: " << fileInfo.st_size << " bytes.\n";
    return 0;
}

这个例子中,我们首先定义了一个 struct 类型的变量 fileInfo,用来存储文件的信息。然后,我们使用 stat 函数读取文件信息,并将返回的信息保存到 fileInfo 变量中。如果 stat 函数调用失败,则输出错误信息并退出。

最后,我们输出文件大小信息。

使用 ifstream 类

另一种获取文件大小的方法是使用 ifstream 类,这个类可以从文件读取内容,并且包含文件大小信息。

代码如下:

#include <iostream>
#include <fstream>

int main() {
    std::ifstream file("file.txt", std::ios::binary | std::ios::ate);
    if (!file) {
        std::cerr << "Error: Unable to open file.\n";
        return 1;
    }
    std::cout << "File size: " << file.tellg() << " bytes.\n";
    return 0;
}

这个例子中,我们首先使用 ifstream 类打开文件,并设置文件打开模式为二进制模式和 ate 模式(将文件读指针移动到文件末尾)。如果打开文件失败,则输出错误信息并退出。

最后,我们使用 tellg 函数获取文件大小,并输出文件大小信息。

结论

这篇文章介绍了两种在 C++ 中获取文件大小的方式,使用 stat 函数和 ifstream 类。根据具体的使用情况,选择合适的方式可以使程序更加高效。