登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

BCB-DG's Blog

...

 
 
 

日志

 
 

获取文件大小方法  

2015-02-12 10:23:36|  分类: Delphi |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
//转
一、GetFileSize

#include <windows.h>
#include <stdio.h>
int main(int argc, LPTSTR argv[]) {
    DWORD lowSize, highSize;
    HANDLE hFile;
    hFile = CreateFile(argv[1], GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL);
    if(hFile == INVALID_HANDLE_VALUE) {
        printf("open file error: %x", GetLastError());
        return 1;
    }
    lowSize = GetFileSize(hFile, &highSize);
    printf("the size of %s is %.2fMB", argv[1], lowSize / 1024.0 / 1024.0);
    return 0;
}

二、fseek与ftell

#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[]) {
    FILE* fp;
    long size;
    fp = fopen(argv[1], "rb");
    if(fp == NULL) {
        perror("open file error:");
        return 1;
    }
    fseek(fp, 0, SEEK_END);
    size = ftell(fp);
    fclose(fp);
    printf("the size of %s is %.2fMB", argv[1], size / 1024.0 / 1024.0);
}

三、FindFirstFile与FindNextFile

typedef struct _WIN32_FIND_DATA {
  DWORD dwFileAttributes;
  FILETIME ftCreationTime;
  FILETIME ftLastAccessTime;
  FILETIME ftLastWriteTime;
  DWORD nFileSizeHigh;
  DWORD nFileSizeLow;
  DWORD dwReserved0;
  DWORD dwReserved1;
  TCHAR cFileName[MAX_PATH];
  TCHAR cAlternateFileName[14];
} WIN32_FIND_DATA, *PWIN32_FIND_DATA, *LPWIN32_FIND_DATA;

HANDLE WINAPI FindFirstFile(
  __in LPCTSTR lpFileName,
  __out LPWIN32_FIND_DATA lpFindFileData
);
BOOL WINAPI FindNextFile(
  __in HANDLE hFindFile,
  __out LPWIN32_FIND_DATA lpFindFileData
);


#include <windows.h>
#include <stdio.h>
int main(int argc, TCHAR* argv[]) {
    HANDLE hFile;
    int i;
    WIN32_FIND_DATA findData;
    BOOL bFind = FALSE;
    if(argc != 2) {
        printf("usage: FileSize2 file");
        return 1;
    }
    hFile = FindFirstFile(argv[1], &findData);
    if(hFile != INVALID_HANDLE_VALUE) bFind = TRUE;
    while(bFind) {
     printf("the size of %40s is %10.2f\n", findData.cFileName, findData.nFileSizeLow / 1024.0 / 1024.0);
        bFind = FindNextFile(hFile, &findData);
    }
    FindClose(hFile);
}

  评论这张
 
阅读(1761)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018