#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. Python:正则表达式的一些例子

    #匹配电话号码(前面3/4-后面7-8): '\d{3,4}-\d{7,8}' #匹配QQ号(从号码1000开始第一位不能为0): '[1,9][0,9]{4}' #匹配身份证(15位数或者18位,考 ...

  2. ArcGIS API for javascript开发笔记(三)——解决打印输出的中文为乱码问题

    感谢一路走来默默支持和陪伴的你~~~ ----------------------欢迎来访,拒绝转载---------------------- 1.      调用ArcGIS API的Print实 ...

  3. Unified Modeling Language

    https://en.wikipedia.org/wiki/Unified_Modeling_Language

  4. automation轻松“一点”,搞定裸机安装系统

    企业在新建数据中心.新业务上线.老业务扩容等场景下,会采购一批新的裸机服务器,在新服务器投入使用之前,势必得进行操作系统的安装.相信每个人都有安装操作系统的经历,BIOS设置.磁盘分区.驱动安装... ...

  5. 一起做RGB-D SLAM (2)

    第二讲 从图像到点云 本讲中,我们将带领读者,编写一个将图像转换为点云的程序.该程序是后期处理地图的基础.最简单的点云地图即是把不同位置的点云进行拼接得到的. 当我们使用RGB-D相机时,会从相机里读 ...

  6. centos 基础修改文件权限

    在centos 下 nginx 默认用户是user = apachegroup = apache 所以需要更改文件和文件夹权限时候需要满足apache用户才能进行 常用方式: $ chmod Runt ...

  7. mac shell终端编辑命令行快捷键

    Ctrl + d        删除一个字符,相当于通常的Delete键(命令行若无所有字符,则相当于exit:处理多行标准输入时也表示eof) Ctrl + h        退格删除一个字符,相当 ...

  8. 配置apache实现对网站某一目录的访问自动跳转到指定目录

    访问www.baidu.com/Hello目录,实际访问/new_balance/hello2 Alias /Hello/ /new_balance/hello2 <Directory /new ...

  9. javascript按字节截取标题中字符串

    在网页展示中经常会碰到,标题过长,需要截取字符串,用CSS的实现的话各种兼容问题,下面为大家介绍下javascript如何按字节截取字符串 做为一个前端开发人员在网页展示中经常会碰到,标题过长,需要截 ...

  10. git客户端msysGit和TortoiseGit使用

    windows下使用TortoiseGit代替Git命令行操作(参考http://www.cnblogs.com/candle806/p/4071656.html) 1.配置TortoiseGit与m ...