您的位置:首页 > 编程语言 > C语言/C++

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

2010-11-20 17:10 441 查看
//C/C++多种方法获取文件大小
#include <iostream>
#include <io.h>
#include <sysstat.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);
    }
}
//也可以直接调用WinAPI函数GetFileSize嘛,
DWORD WINAPI GetFileSize(
__in HANDLE hFile,
__out LPDWORD lpFileSizeHigh
);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: