标题:其实ftell 来获得一个文件的大小有点不合适(自己写错了。)
只看楼主
小鱼儿c
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:14
帖 子:852
专家分:1317
注 册:2011-4-1
结帖率:95.74%
 问题点数:0 回复次数:0 
其实ftell 来获得一个文件的大小有点不合适(自己写错了。)
今天在写一个项目,发现用fseek 移到文件结尾。再调用ftell 获得文件大小。
对于一般的txt html 我测试这个。但zip 压缩包是不可以的。

貌似c语言没有什么函数很好获得文件大小。

看来只能用一下API了

唉,原来是一个地方写错了。误会你ftell

顺便网上找到的。。


#include <iostream>
#include <windows.h>
#include <io.h>
#include <sys\stat.h>
using namespace std;
void main()
{
    char *filepath = "C:\\1.txt";
    //方法一   

    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);
    }
     

    //方法二

    WIN32_FIND_DATA fileInfo;
    HANDLE hFind;
    DWORD fileSize;
        hFind = FindFirstFile(filepath ,&fileInfo);
    if(hFind != INVALID_HANDLE_VALUE)
        fileSize = fileInfo.nFileSizeLow;
    cout<<fileSize<<endl;
    FindClose(hFind);

    //方法三

    FILE* file = fopen(filepath, "r");
    if (file)
    {
        int size = filelength(fileno(file));
        cout<<size<<endl;
        fclose(file);
    }

    //方法四

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

    return ;
}

[ 本帖最后由 小鱼儿c 于 2012-3-7 02:14 编辑 ]
搜索更多相关主题的帖子: 压缩包 include html c语言 网上 
2012-03-07 01:51



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-362419-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.135939 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved