`
aigo
  • 浏览: 2648828 次
  • 性别: Icon_minigender_1
  • 来自: 宜昌
社区版块
存档分类
最新评论

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

C++ 
阅读更多

原文:http://www.cnblogs.com/cxun/archive/2009/02/24/1397153.html

 

#include <iostream>
#include <io.h>
#include <sys\stat.h>
#include <afx.h>
#define _AFXDLL
using namespace std;

void main()
{
    // 此文件在工程打开状态下为不可访问
    char* filepath = "..\\test.ncb";

    // 方法一
    struct _stat info;
    _stat(filepath, &info);
    int size = info.st_size;
    cout<<size<<endl;

    // 方法二
    FILE* file = fopen(filepath, "rb");
    if (file)
    {
        int size = filelength(fileno(file));
        cout<<size<<endl;
        fclose(file);
    }

    // 方法三
    CFile cfile;
    if (cfile.Open(filepath, CFile::modeRead))
    {
        int size = cfile.GetLength();
        cout<<size<<endl;
    }

    // 方法四
    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_C++多种方法获取文件大小

    在C/C++编程语言中,获取文件大小是文件操作中的一个基本需求,尤其对于初学者和经常处理文件的开发者来说,掌握多种获取文件大小的方法是非常有帮助的。本文将详细介绍几种常用的获取文件大小的方法,包括使用`_...

    C++实现http/https/ftp文件下载

    5. **HTTP协议解析**:需要解析HTTP响应头,包括状态码、Content-Length等信息,以确定文件大小和下载进度。 6. **HTTPS安全处理**:涉及到SSL/TLS握手,证书验证,数据加密等,可能需要OpenSSL库支持。 7. **FTP...

    vscode 配置C / C++环境.docx

    Visual Studio Code (简称VSCode) 是一款由微软开发且广受欢迎的轻量级源代码编辑器,支持多种编程语言,包括C/C++。对于C/C++开发者而言,VSCode提供了强大的编辑功能以及便捷的调试工具,能够显著提升开发效率。...

    c/c++ ftp类 支持续传

    - 读取文件状态:获取远程文件的大小,以便确定续传起点。 - 开始上传:使用PUT或STOR命令,指定本地文件和远程路径。在libcurl中,可以设置CURLOPT_RESUME_FROM选项来指定开始位置。 - 监控和处理错误:在传输...

    C/C++多线程下载模块

    在C/C++编程中,多线程下载模块是一种常见的技术,用于提高文件下载效率,尤其在处理大文件或网络带宽有限的情况下。本模块利用了libcurl库,一个强大的URL传输库,支持多种协议,包括HTTP,使得实现多任务、断点续...

    Aspose.Cells 18.5.0 for C/C++ 示例(demo)

    总之,Aspose.Cells 18.5.0 for C/C++提供了一个全面的API,使得在没有Excel的情况下,开发者也能轻松处理Excel文件的各种任务。通过深入学习和实践提供的示例代码,开发者能够充分利用该库的强大功能,高效地实现...

    c/c++ 学习总结 初学者必备

    在C/C++编程语言中,变量的定义和声明是非常基础但至关重要的概念。下面是对题目中提到的各种类型的详细解释: 1. a) 整型数(An integer): `int a;` 定义了一个名为`a`的整型变量,它可以存储整数值。 2. b) ...

    C/C++ 知识归类

    在C和C++编程语言的学习中,理解和掌握各种基本概念是非常关键的,这对于即将面试的群体尤其重要。这里我们将按照给定的知识结构和具体内容来详细阐述这些知识点。 1. 条件控制语句:if, for, switch, goto - `if`...

    MFC使用Asprise C/C++OCR提取图片文字

    Asprise OCR支持多种语言,具备高精度和高速度的特点,允许开发者通过C/C++接口进行调用。在MFC应用中,通常会通过创建一个工作线程来执行OCR任务,以避免阻塞用户界面。 3. **Asprise OCR的使用**: 使用Asprise ...

    Qt实现TCP文件传输例子,qt的tcp通信编程,C/C++

    - 为了确保文件完整,可以使用QDataStream类来处理数据的序列化和反序列化,这样可以方便地附加头部信息,如文件大小、校验和等。 - 文件传输完成后,服务器和客户端都需要关闭TCP连接,这可以通过调用QTcpSocket...

    C++ 调用7z SDK解压

    3. **获取文件列表**:调用`GetNumberOfItems`获取压缩包内的文件数量,然后通过`GetArchiveProperty`或`GetItemInfo`获取每个文件的详细信息,如文件名、大小等。 4. **解压文件**:对于每个需要解压的文件,使用`...

    C++语言用zlib库解压zip文件

    在这个例子中,`unzOpen`用于打开zip文件,`unzGoToFirstFile`和`unzGoToNextFile`遍历文件,`unzGetCurrentFileInfo`获取文件信息,`unzReadCurrentFile`读取并解压缩文件内容,最后`unzClose`关闭zip文件。...

    Lua和C/C++互相调用实例分析

    Lua和C/C++互相调用实例分析 Lua作为小巧精悍的脚本语言...Lua和C/C++的互相调用可以通过栈来实现,Lua提供了多种类型的数据入栈接口、数据获取接口、栈操作接口和table操作接口,以便在Lua和C/C++之间进行数据交互。

    c++遍历一个ISO文件里面的所以文件名

    你可以使用libcdio提供的`cdio_read_iso_directory_entry`函数获取每个目录项,这些项包含了文件或目录的信息,如名称、大小和位置。需要注意的是,ISO9660文件系统中的路径是相对的,通常以“/”开头。 5. **...

    C语言分析pcap文件

    ### C语言分析pcap文件知识点解析 #### 一、引言 在网络安全、网络监控以及数据分析等领域中,对网络数据包进行捕获与分析是非常重要的技术手段之一。pcap文件格式作为最常用的网络数据包捕获文件格式之一,被广泛...

    Linux C++ curl 文件下载功能代码

    在Linux系统中,C++与curl库结合可以实现强大的网络文件下载功能。curl是一个命令行工具,用于获取或传输数据,支持多种协议,包括HTTP、HTTPS、FTP等。在C++编程中,我们可以利用libcurl这个库来实现相同的功能。本...

    使用Zlib完成取ZIP压缩包中文件

    根据文件大小动态分配内存,并在读取完成后释放。 5. **与Lua交互**:创建一个C接口,使得Lua能够调用C编写的zextract库中的函数。这通常涉及到创建lua_CFunction,使用lua_register或lua_pushcfunction注册函数,...

    C++ Zlib解压zip文件Demo

    // 假设已读取ZIP文件到buf,buf_len为文件大小 void decompressFile(const char* buf, size_t buf_len) { z_stream stream; memset(&stream, 0, sizeof(stream)); // 初始化解压流 inflateInit2(&stream, MAX_...

    C入门&&JNI;

    - **代码复用**:对于已经存在的C/C++库,例如文件压缩库或人脸识别库,可以通过JNI在Java项目中直接调用,减少重复编写代码的工作量。 - **特殊业务场景**:例如,OpenCV库可以用于实时图像处理(如人脸识别),...

Global site tag (gtag.js) - Google Analytics