如何用C++取文件占用空间?

问题描述

如何用C++取文件占用空间?

微软有没有API能取文件占用空间,请好像在文件属性中显示的“文件大小”“文件占用空间”?

有一个方案是用GetDiskFreeSpace先取分区的簇大小,再根据簇大小和GetCompressedFileSize得到的文件大小计算出文件的占用空间。

但这个方案有个缺点,在NTFS中如果是小文件,比如只有100字节,这个文件是不占用簇的,文件内容是直接保存在$MFT中的文件元数据区中,所以它的占用空间是0。用上面这个方案算出来的占用空间却是一个簇的大小。

解决方案

下面是 http://www.cplusplus.com/doc/tutorial/files/ 的代码,以binary方式打开文件,通过seekg和tellg获取文件大小(以Byte为单位)

 // obtaining file size
#include <iostream>
#include <fstream>
using namespace std;

int main () {
  streampos begin,end;
  ifstream myfile ("example.bin", ios::binary);
  begin = myfile.tellg();
  myfile.seekg (0, ios::end);
  end = myfile.tellg();
  myfile.close();
  cout << "size is: " << (end-begin) << " bytes.n";
  return 0;
}
时间: 2024-07-28 16:20:08

如何用C++取文件占用空间?的相关文章

java-如何提用Java取文件中几行特定的内容

问题描述 如何提用Java取文件中几行特定的内容 做的项目中有一个是提取一些实例,要有年份的限制,但每个实例都有特性. 要把#* 到#!提取出来相应#t哪里要有个限制 各位大神解决这样的问题如何用java实现呢 解决方案 JAVA正则处理就OK了.

php计算指定目录下文件占用空间的方法

 这篇文章主要介绍了php计算指定目录下文件占用空间的方法,实例分析了php操作目录及文件的技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了php计算指定目录下文件占用空间的方法.分享给大家供大家参考.具体分析如下: php中可以通过 RecursiveDirectoryIterator 扩展 DirectoryIterator的getChildren() 方法提供访问子目录中的每一个元素的方法,下面的代码通过遍历访问目录下的所有文件,获取他们暂用的空间. ? 1 2 3

如何用PHP实现文件上传例子

上传                 如何用PHP实现文件上传(实例1) 上载文件表单网页:updatefile.htm<html><head><title>上载文件表单</title></head><body><form ENCTYPE="multipart/form-data" ACTION="updatefile.php3" METHOD="POST">&l

如何用Word为文件图片添加水印

  今天blue1000.com分享的是如何用word为文件图片添加水印的教程.方便那些原创的作者为自己的文章和图片加盖专属于自己的印记.有需要的童鞋们,快来留下你的爪印吧! 点击菜单栏的"格式"--"背景"--"水印",弹出"水印"设置窗口,先选择水印类型:图片水印或文字水印.如果选择图片水印,可以从硬盘中选择一张图片作为水印,并可设置图片的缩放和冲蚀.如果选择文字水印,可以自己输入作为水印的文字,并设置其字体.尺寸.颜色等

javascript-后台向前台发送一组json,如何用js取出来?

问题描述 后台向前台发送一组json,如何用js取出来? A/B/C是都是bean A里面有List<B> B里面有List<C> 现在我把List<A>在后台json化了, 在前台怎么能给他取出来? 解决方案 jquery设置dataType:'json'会自动帮你将返回的内容转为json对象. 你可以用浏览器访问url地址看输出什么格式的json内容,才好读取 解决方案二: 如果后台返回的响应数据是JSON格式的字符串,那么前台处理时直接按js对象处理啊,对象的.操

php计算指定目录下文件占用空间的方法_php技巧

本文实例讲述了php计算指定目录下文件占用空间的方法.分享给大家供大家参考.具体分析如下: php中可以通过 RecursiveDirectoryIterator 扩展 DirectoryIterator的getChildren() 方法提供访问子目录中的每一个元素的方法,下面的代码通过遍历访问目录下的所有文件,获取他们暂用的空间. <?php $dir = new RecursiveDirectoryIterator('C:\wamp'); $totalSize = 0; foreach (n

python学习-如何用python访问文件夹?

问题描述 如何用python访问文件夹? 怎么才能用python访问一个文件夹下的文件啊 ???求代码啊 !!我想做一个动画 ,结果python访问不了桌面的一个文件夹中的图片 解决方案 python 遍历文件夹 解决方案二: http://www.cnblogs.com/yuxc/archive/2011/08/01/2124012.html

jquery-如何用JQuery取当前元素第n个子节点?

问题描述 如何用JQuery取当前元素第n个子节点? 我现在已经得到了tr元素节点tr下有5个td我现在想出第2个和第3个td节点 解决方案 $(""tr:eq(2)"")$(""tr:eq(3)"") 解决方案二: jquery 取子节点及当前节点属性值 解决方案三: var tds=$('td:eq(1)td:eq(2)'tr) 解决方案四: $(""td"").index() 解决

javascript-如何用js 下载文件 路径已经获取到了 目前是这么写的 window.open(url);

问题描述 如何用js 下载文件 路径已经获取到了 目前是这么写的 window.open(url); 如何用js 下载文件 路径已经获取到了 目前是这么写的 window.open(url); 这样写的话 如果是rar doc 后缀的话 是直接下载 但是如果是 txt 或者png 的 它就打开了 如果一些未知格式的话 入如 esp dat 它就会报错 有没有办法让它直接下载 无论什么文件都是下载 另存为 解决方案 服务器端对这些请求的Responder header里指定 mime-type 是