C++ 文件大小格式化
#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++ 文件大小格式化的更多相关文章
- PHP文件大小格式化函数合集
比如碰到一个很大的文件有49957289167B,大家一看这么一长串的数字后面单位是字节B,还是不知道这个文件的大小是一个什么概念,我们把它转换成GB为单位,就是46.53GB.用下面这些函数就可以完 ...
- 根据文件大小自动判断单位B,KB,MB,GB
<php> /** * 文件大小格式化 * @param integer $size 初始文件大小,单位为byte * @return array 格式化后的文件大小和单位数组,单位为by ...
- Android数据格式化
1.文件大小格式化: Log.d(TAG, Formatter.formatFileSize(this, 100)); //100 B Log.d(TAG, Formatter.formatFileS ...
- 30分钟玩转Net MVC 基于WebUploader的大文件分片上传、断网续传、秒传(文末附带demo下载)
现在的项目开发基本上都用到了上传文件功能,或图片,或文档,或视频.我们常用的常规上传已经能够满足当前要求了, 然而有时会出现如下问题: 文件过大(比如1G以上),超出服务端的请求大小限制: 请求时间过 ...
- python框架之Django(3)-模版
常用语法 符号 {{...}} # 变量相关 {%...%} # 逻辑相关 {#...#} # 注释 使用变量 def test(request): name = '张三' age = 19 retu ...
- 基于jquery ajax的多文件上传进度条
效果图 前端代码,基于jquery <!DOCTYPE html> <html> <head> <title>主页</title> < ...
- 文件 File 常见操作 工具 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- JavaScript常用方法
判断运行客户端 function isPhone() { var flag = false; var userAgentInfo = navigator.userAgent; var Agents = ...
- 使用百度的webuploader进行附件上传
相较于之前使用的上传空间的优点:支持html5,不用再安装flash插件,没有大小限制,分片以后上传,上传以后再进行合并. 前端js代码 <script type="text/java ...
随机推荐
- 批量转换gbk编码的java代码为utf8
#!/bin/bash echo $1 echo $# if [ ! $# -eq 1 ]; then echo "usage: ./gbk2utf8.sh src" ...
- USB--- kvm in ubuntu:
USB SS=USB SuperSpeed=USB 3.0!!顺应此前的USB 1.1 FullSpeed和USB 2.0 HighSpeed https://jingyan.baidu.com/ar ...
- grafana,graphite,influxdb with docker
++++++++++++++++++++++++ sudo docker pull tutum/influxdb sudo docker run -d -p 8083:8083 -p8086:8086 ...
- Ucenter社区服务搭建
1.搭建lamp环境yum –y install httpd php php-mysql mysql mysql-server 2启动服务 3.设置服务开机自动启动 4.上传UCEN ...
- Memcached与redis的比较--stackoverflow(转)
原文:http://blog.nosqlfan.com/html/3729.html 这两年Redis火得可以,Redis也常常被当作Memcached的挑战者被提到桌面上来.关于Redis与Memc ...
- query:callback
function getName(callback) { setTimeout(function() { callback('Aaron') }, 1000) } //等待callback回调 get ...
- 【剑指offer】合并两个排序的链表
一.题目: 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. 二.思路: 递归思想,首先判断一方为空的情况,一方为空则直接返回另一方.都不为空时,首先找到表 ...
- spring boot上传 下载图片。
https://blog.csdn.net/a625013/article/details/52414470 build.gradle buildscript { repositories { mav ...
- eigen 笔记2
4. Block operations 1) Using block operations Block of size(p, q), starting at (i, j) dynamic-size b ...
- Python os.path.dirname(__file__) 与 Python os.path.abspath(__file__) 与 os.system() 函数
Python os.path.dirname(__file__) 与 Python os.path.abspath(__file__) 的区别 os.path.abspath(__file__)返回 ...