C/C++获取文件大小的多种方法代码

2025-01-02 04:47:10   小编

C/C++获取文件大小的多种方法代码

在C/C++编程中,获取文件大小是一个常见的操作。下面将介绍几种不同的方法来实现这一功能。

方法一:使用stat结构体(C语言)

在C语言中,可以使用stat函数来获取文件的相关信息,其中就包括文件大小。示例代码如下:

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

long getFileSize(const char* fileName) {
    struct stat st;
    if (stat(fileName, &st) == 0) {
        return st.st_size;
    } else {
        perror("stat");
        return -1;
    }
}

int main() {
    const char* fileName = "test.txt";
    long size = getFileSize(fileName);
    if (size!= -1) {
        printf("文件大小为:%ld字节\n", size);
    }
    return 0;
}

方法二:使用fseek和ftell函数(C语言)

这种方法通过移动文件指针到文件末尾,然后获取当前位置来确定文件大小。

#include <stdio.h>

long getFileSize(FILE* file) {
    long currentPos = ftell(file);
    fseek(file, 0, SEEK_END);
    long size = ftell(file);
    fseek(file, currentPos, SEEK_SET);
    return size;
}

int main() {
    FILE* file = fopen("test.txt", "r");
    if (file!= NULL) {
        long size = getFileSize(file);
        printf("文件大小为:%ld字节\n", size);
        fclose(file);
    }
    return 0;
}

方法三:使用C++的ifstream(C++)

在C++中,可以利用ifstream来获取文件大小。

#include <iostream>
#include <fstream>

long getFileSize(const std::string& fileName) {
    std::ifstream file(fileName, std::ios::ate | std::ios::binary);
    if (file.is_open()) {
        long size = file.tellg();
        file.close();
        return size;
    } else {
        return -1;
    }
}

int main() {
    std::string fileName = "test.txt";
    long size = getFileSize(fileName);
    if (size!= -1) {
        std::cout << "文件大小为:" << size << "字节" << std::endl;
    }
    return 0;
}

以上就是C/C++中获取文件大小的几种常见方法,不同的方法适用于不同的场景,开发者可以根据实际需求选择合适的方式。

TAGS: C语言获取文件大小 C++获取文件大小 获取文件大小方法 文件大小代码示例

欢迎使用万千站长工具!

Welcome to www.zzTool.com