#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. LINUX系统中安装ORACLE11g的安装文档,含部分问题解答

    1.无法使用命令 /usr/bin/xdpyinfo 自动检查显示器颜色 在linux as5下安装oracle11g,环境都配置好了!等运行./runInstaller的时候无法弹出安装的图形界面我 ...

  2. linux:echo命令示例

    echo命令:用于字符串的输出  $echo string 1.打印普通字符串 $echo "hello kumata" hello kumata #这里的双引号完全可以省略,以下 ...

  3. 如何删除word中多余的空格和空行

    去除word中多余的空格及空行 一.去掉表格和格式 为了版面的整齐,网页文档都是以表格的形式存在的,只是一般情况下表格的颜色被设为无色或表格宽度被设为0,所以我们在网页上看不到表格.另外,网 页文档中 ...

  4. LINUX中的ACL

    一. 为什么要使用ACL先让我们来简单地复习一下Linux的文件权限. 在 linux下,对一个文件(或者资源)可以进行操作的对象被分为三类: file owner(文件 的拥有者),group(组, ...

  5. mysql 数据操作 单表查询 目录

    mysql 数据操作 单表查询 mysql 数据操作 单表查询 简单查询 避免重复DISTINCT mysql 数据操作 单表查询 通过四则运算查询 mysql 数据操作 单表查询 concat()函 ...

  6. mysql 内置功能 存储过程 目录

    mysql 内置功能 存储过程介绍 mysql 内置功能 存储过程 创建无参存储过程 mysql 内置功能 存储过程 创建有参存储过程 mysql 内置功能 存储过程 删除存储过程

  7. android奔溃日期一闪而过

    Android Studio日期崩溃了一闪而过,看不到原因:可以设置No Filters就可以了

  8. vue-preview使用

    1.安装 npm i vue-preview -S2.如果使用vue-cli生成的项目,需要修改webpack.base.conf.js文件中的loaders,添加一个loader{ test:/vu ...

  9. Debugging golang programs

    https://ttboj.wordpress.com/2016/02/15/debugging-golang-programs/ I’ve been writing a lot of golang ...

  10. Qt下QString转char*

    Qt下面,字符串都用QString,确实给开发者提供了方便,想想VC里面定义的各种变量类型,而且函数参数类型五花八门,经常需要今年新那个类型转换 Qt再使用第三方开源库时,由于库的类型基本上都是标准的 ...