#include <iostream>
#include <windows.h>
using namespace std;
 /*文件大小格式化
*param [in] dwSize xx.xxB 、xx.xxKb 、xx.xxM
*/ LPCTSTR CFileUtil::FileSizeToFormat(DWORD dwSize)
{
TCHAR* strSize = new TCHAR[];
ZeroMemory(strSize,sizeof(TCHAR) * ); double i = pow((double),); if (dwSize < pow((double),))//dwSize < 1024
{
_stprintf_s(strSize,,TEXT("%dB"),dwSize);//文件大小 B
}
else if (pow((double),) <= dwSize && dwSize< pow((double),))// 1024 <= dwSize < 1024*1024
{
float fSize = (float)(dwSize*/)/;
_stprintf_s(strSize,,TEXT("%.2fKB"),fSize);
}
else if (pow((double),) <= dwSize && dwSize < pow((double),))// 1024*1024 <= dwSize < 1024*1024*1024
{
float fSize = (float)(dwSize/*/)/;
_stprintf_s(strSize,,TEXT("%.2fM"),fSize);//文件大小 M
}
else if (pow((double),) <= dwSize && dwSize < pow((double),)) // 1024*1024*1024 <= dwSize < 1024*1024*1024*1024
{
float fSize = (float)(dwSize/*//)/;
_stprintf_s(strSize,,TEXT("%.2fG"),fSize);//文件大小 G
}
else
{
float fSize = (float)(dwSize/*///)/;
_stprintf_s(strSize,,TEXT("%.2fT"),fSize);//文件大小 T
} return strSize;
}
 /*根据文件大小进行格式化
*@[in ] llBytes 文件的长度(B)
*@[out] pszSize 缓冲区
*@[in ] clen 缓冲区长度
*/ BOOL FileSizeToStringA(LONGLONG llBytes, char* pszSize, DWORD cLen)
{
double bytes = (double)llBytes;
DWORD cIter = ;
char* pszUnits[] = { ("B"), ("KB"), ("MB"), ("GB"), ("TB") };
DWORD cUnits = sizeof(pszUnits) / sizeof(pszUnits[]); // move from bytes to KB, to MB, to GB and so on diving by 1024
while(bytes >= && cIter < (cUnits-))
{
bytes /= ;
cIter++;
}
_snprintf_s(pszSize, cLen, _TRUNCATE,("%.2f %s"), bytes, pszUnits[cIter]);
return TRUE;
} int main()
{
char szText[];
FileSizeToStringA(,szText,); cout << "szText:" << szText << endl; getchar();
return ;
}

C++ 文件大小格式化的更多相关文章

  1. PHP文件大小格式化函数合集

    比如碰到一个很大的文件有49957289167B,大家一看这么一长串的数字后面单位是字节B,还是不知道这个文件的大小是一个什么概念,我们把它转换成GB为单位,就是46.53GB.用下面这些函数就可以完 ...

  2. 根据文件大小自动判断单位B,KB,MB,GB

    <php> /** * 文件大小格式化 * @param integer $size 初始文件大小,单位为byte * @return array 格式化后的文件大小和单位数组,单位为by ...

  3. Android数据格式化

    1.文件大小格式化: Log.d(TAG, Formatter.formatFileSize(this, 100)); //100 B Log.d(TAG, Formatter.formatFileS ...

  4. 30分钟玩转Net MVC 基于WebUploader的大文件分片上传、断网续传、秒传(文末附带demo下载)

    现在的项目开发基本上都用到了上传文件功能,或图片,或文档,或视频.我们常用的常规上传已经能够满足当前要求了, 然而有时会出现如下问题: 文件过大(比如1G以上),超出服务端的请求大小限制: 请求时间过 ...

  5. python框架之Django(3)-模版

    常用语法 符号 {{...}} # 变量相关 {%...%} # 逻辑相关 {#...#} # 注释 使用变量 def test(request): name = '张三' age = 19 retu ...

  6. 基于jquery ajax的多文件上传进度条

    效果图 前端代码,基于jquery <!DOCTYPE html> <html> <head> <title>主页</title> < ...

  7. 文件 File 常见操作 工具 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  8. JavaScript常用方法

    判断运行客户端 function isPhone() { var flag = false; var userAgentInfo = navigator.userAgent; var Agents = ...

  9. 使用百度的webuploader进行附件上传

    相较于之前使用的上传空间的优点:支持html5,不用再安装flash插件,没有大小限制,分片以后上传,上传以后再进行合并. 前端js代码 <script type="text/java ...

随机推荐

  1. ArcGIS API for javascript开发笔记(六)——REST详解及如何使用REST API调用GP服务

    感谢一路走来默默支持和陪伴的你~~~ -------------------欢迎来访,拒绝转载-------------------- 一.Rest API基础 ArcGIS 平台提供了丰富的REST ...

  2. android Instrumentation 转载

      Android提供了一系列强大的测试工具,它针对Android的环境,扩展了业内标准的JUnit测试框架.尽管你可以使用JUnit测试Android工程,但Android工具允许你为应用程序的各个 ...

  3. Best Cow Line---poj3617(贪心)

    题目链接:http://poj.org/problem?id=3617 题意:有n头牛.刚开始有一个序列.现在想要重新排列.每次从原始的序列头部和尾部取出一个取出一个放到新的序列尾部.最后使得得到的新 ...

  4. 【python-opencv】15-图像阈值

    [微语]立志要如山,行道要如水.不如山,不能坚定,不如水,不能曲达 import cv2 as cv import numpy as np from matplotlib import pyplot ...

  5. thinkphp 如何查询数据库

    在控制器中使用M(); 数据表: 一.查询方式 1.字符串作为条件 2.使用索引数组作为条件查询条件 //可以更改逻辑关系 $condition['_logic'] = 'OR'; 二.表达式查询 三 ...

  6. Java非静态内部类为什么不能有静态成员

    我们可以把InnerClass看成OuterClass的非静态成员,它的初始化必须在外部类对象创建后以后进行,要加载InnerClass必须在实例化OuterClass之后完成 ,java虚拟机要求所 ...

  7. 第2章 2.n物理层--数据通信基础知识总结

    数据通信基础知识总结

  8. CentOS工作内容(六)双网卡带宽绑定bind teaming

    CentOS工作内容(六)双网卡带宽绑定bind  teaming Teaming功能是什么功能http://zhidao.baidu.com/link?url=cpcwl9LH4FSHJBaTW-e ...

  9. Tomcat项目部署的三种方法

    第一种方法如下:直接把我们的项目文件夹放到tomcat里面,在这里我自己做的是一个测试项目oa,如图 启动tomcat,打开浏览器,输入localhost/oa  即可打开你的文件,注意 :访问的时候 ...

  10. Python 使用ctypes调用 C 函数

    在python中通过ctypes可以直接调用c的函数,非常简单易用 下面就一步一步解释用法吧,以Linux为例讲解. 1, 首先确定你的python支持不支持ctypes python2.7以后cty ...