CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C++ 语言

C++如何取得文件的大小?

楼主liqth(爱飞)2005-01-19 23:12:05 在 C/C++ / C++ 语言 提问

1.   C++如何取得文件的大小?   system.ini   为   3M   那如何知道它是   3M?  
  2.   如何取得C盘可用空间的大小?  
  3.   如何取得内存的使用情况?  
   
  Thanks!  
  问题点数:50、回复次数:9Top

1 楼liqth(爱飞)回复于 2005-01-19 23:18:43 得分 0

help   me   please!Top

2 楼tangshiping(苇舞)回复于 2005-01-20 09:39:53 得分 20

呵呵,建议你到VC区。  
  1:HANDLE   handle   =   CreateFile(...);  
  DWORD   GetFileSize(  
      HANDLE   handle   ,                       //   handle   to   file  
      LPDWORD   lpFileSizeHigh         //   high-order   word   of   file   size  
  );  
   
  2://获取磁盘剩余空间     ULARGE_INTEGER              
  ULARGE_INTEGER   lpuse;  
  ULARGE_INTEGER   lptotal;  
  ULARGE_INTEGER   lpfree;  
  GetDiskFreeSpaceEx("d:\\",&lpuse,&lptotal,&lpfree);  
  if(lpfree.QuadPart   <   600*1024*1024)//如果小于600M  
    {      
    MessageBox("....");  
    }  
  //lpfree.QuadPart是   __int64   型  
  3:内存使用率也有相应的   API  
  MEMORYSTATUS   MemoryStatus;  
  MemoryStatus.dwLength   =   sizeof(MEMORYSTATUS);  
  ::GlobalMemoryStatus(&MemoryStatus);  
  Top

3 楼tangshiping(苇舞)回复于 2005-01-20 09:41:08 得分 5

41362804   my   qqTop

4 楼ChengZi()回复于 2005-01-20 11:13:12 得分 5

文件大小:  
   
  FILE   *   f   =   fopen("system.ini",   "rb");  
                feek(f,   0,   SEEK_END);   //   到文件结束  
  long     size   =   ftell(f);  
  Top

5 楼EvilSword(邪剑)回复于 2005-01-20 11:17:23 得分 5

你所问的这个问题和C++没有关系,只和操作系统有关,在windows下和unix下是不一样的。主要看系统的API接口Top

6 楼jacklondon(jacklondon)回复于 2005-01-20 11:26:59 得分 5

用纯粹的   ANSI   C++   取得文件大小:  
  #include   <fstream>  
  #include   <string>  
  #include   <iostream>  
  using   namespace   std;  
   
  int   main(int   argc,   char*   argv[])  
  {  
  string   sFileName   =   "d:/windows/system.ini";  
  ifstream   in(sFileName.c_str());  
  in.seekg(0,ios::end);  
  long   size   =   in.tellg();  
  in.close();  
   
  cout   <<   "文件大小为:"   <<   size   <<   endl;  
   
  return   0;  
  }Top

7 楼kay_zlc(小K)回复于 2005-01-20 13:27:58 得分 5

The   file   size   got   by   ifstream   is   limit   to   long,   if   the   file   is   too   large   to   be   hold   in   a   long   variable(32bits),   then   you   have   to   use   other   libs'   functions,   such   as   MFC   or   boost.Top

8 楼jacklondon(jacklondon)回复于 2005-01-20 15:49:14 得分 5

已经够大了。   Linux   的   Ext2   ,   Ext3   文件系统的单个文件大小也不大。Top

9 楼localman()回复于 2005-01-20 16:33:23 得分 0

jacklondon(jacklondon)的用文件流的办法适用范围广Top

相关问题

  • 取得文件大小
  • DataBinder.Eval(Container,"DataItem.文件大小","{0:c}")文件转化问题!
  • C/S中,如何限制邮箱大小,发送文件大小?
  • 如何在C中得到任一文件的大小?(turbo C)
  • 标准C++中,对ifstream文件对象,如何取其文件大小?
  • 如何取得指定文件名的大小?
  • 请教,如何取得服务器上文件的大小?
  • 上传文件时怎样在前台取得它的大小?
  • 如何获得文件大小(最好兼容Ansi C的)
  • c中是怎样读取文件的大小?

关键词

  • c++
  • lpfree
  • ularge
  • 取得
  • 大小
  • handle
  • integer

得分解答快速导航

  • 帖主:liqth
  • tangshiping
  • tangshiping
  • ChengZi
  • EvilSword
  • jacklondon
  • kay_zlc
  • jacklondon

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo