win32命令行小程序获取指定文件夹或者目录下面的所有文件大小,文件数量,目录数量
- #include <Windows.h>
- #include <stdio.h>
- #include <tchar.h>
- LARGE_INTEGER lgAllSubFolderFileSize;
- LARGE_INTEGER lgEachTempFileSize;
- DWORD dwTotalFolderNum=0;
- DWORD dwTotalFileNum=0;
- int ListFolderTotalFileSize(LPCTSTR lpTempPath)
- {
- TCHAR tchFindArray[MAX_PATH]= {_T("\0")};
- WIN32_FIND_DATA wFileDataAttr;
- BOOL bRet;
- _tcscpy_s(tchFindArray,MAX_PATH, lpTempPath);
- _tcscat_s(tchFindArray,_T("\\*.*"));
- HANDLE hFind= ::FindFirstFile(tchFindArray,&wFileDataAttr);
- if (INVALID_HANDLE_VALUE== hFind)
- {
- return -1;
- }
- while (TRUE)
- {
- if (wFileDataAttr.cFileName[0]!= _T('.'))
- {
- //_tprintf(_T("%s\\%s\n"),lpTempPath, findFileData.cFileName);
- lgEachTempFileSize.LowPart=wFileDataAttr.nFileSizeLow;
- lgEachTempFileSize.HighPart=wFileDataAttr.nFileSizeHigh;
- lgAllSubFolderFileSize.QuadPart=lgAllSubFolderFileSize.QuadPart+lgEachTempFileSize.QuadPart;
- dwTotalFileNum=dwTotalFileNum+1;
- if (wFileDataAttr.dwFileAttributes& FILE_ATTRIBUTE_DIRECTORY)
- {
- _tcscpy_s(tchFindArray,MAX_PATH,lpTempPath);
- _tcscat_s(tchFindArray,_T("\\"));
- _tcscat_s(tchFindArray,wFileDataAttr.cFileName);
- dwTotalFolderNum=dwTotalFolderNum+1;
- ListFolderTotalFileSize(tchFindArray);
- }
- }
- bRet= ::FindNextFile(hFind,&wFileDataAttr);
- if (!bRet)
- {
- break;
- }
- }
- ::FindClose(hFind);
- return 1;
- }
- BOOL IsAscii2Unicode(const char * pstring,TCHAR pwText[])
- {
- DWORD dwLengthNum = MultiByteToWideChar (CP_ACP, 0, pstring, -1, NULL, 0);
- TCHAR *pwTempText = new TCHAR[dwLengthNum+1];
- ZeroMemory((PVOID)pwTempText,2*(dwLengthNum+1));
- if(pwTempText==NULL)
- {
- delete[] pwTempText;
- pwTempText=NULL;
- return FALSE;
- }
- if(0==MultiByteToWideChar (CP_ACP, 0, pstring, -1, (LPWSTR)pwTempText, dwLengthNum))
- {
- delete [] pwTempText;
- pwTempText=NULL;
- return FALSE;
- }
- else
- {
- lstrcpy(pwText,pwTempText);
- delete [] pwTempText;
- pwTempText=NULL;
- return TRUE;
- }
- }
- int main(int argc,_TCHAR * argv[])
- {
- TCHAR tchCommand0[MAX_PATH]={0};
- TCHAR tchCommand1[MAX_PATH]={0};
- TCHAR tchCommand2[MAX_PATH]={0};
- lgAllSubFolderFileSize.QuadPart=0L;
- lgEachTempFileSize.QuadPart=0L;
- BOOL bRet=IsAscii2Unicode((const char* )argv[0],tchCommand0);
- if (argc!=3)
- {
- wprintf(_T("example:\n"));
- wprintf(_T("\t"));
- wprintf(tchCommand0);
- wprintf(_T(" <-dir> d:\\temp\\\n"));
- return -1;
- }
- else
- {
- bRet=IsAscii2Unicode((const char* )argv[1],tchCommand1);
- if(bRet==FALSE)
- {
- wprintf(_T("argv convert fails\n"));
- return -1;
- }
- bRet=IsAscii2Unicode((const char* )argv[2],tchCommand2);
- if(bRet==FALSE)
- {
- wprintf(_T("argv convert fails\n"));
- return -1;
- }
- if((lstrcmp(tchCommand1,_T("-dir"))==0))
- //
- {
- DWORD dwRetSize=ListFolderTotalFileSize(tchCommand2);
- if (dwRetSize==-1)
- {
- _tprintf(_T("Open file failed \n"));
- return 1;
- }
- else
- {
- _tprintf(_T("NUMB SIZE : %u DIRES \n"),dwTotalFolderNum);
- _tprintf(_T("NUMB SIZE : %u FILES \n"),dwTotalFileNum);
- _tprintf(_T("FILE SIZE : %u BYTES \n"),lgAllSubFolderFileSize.QuadPart);
- //
- UINT uMaxSize=0;
- if(lgAllSubFolderFileSize.QuadPart<1024)
- {
- uMaxSize=lgAllSubFolderFileSize.QuadPart;
- _tprintf(_T("FILE SIZE : %.4u BYTE \n"),(uMaxSize));
- }
- else if ((lgAllSubFolderFileSize.QuadPart>1024)&&(lgAllSubFolderFileSize.QuadPart<1024*1024))
- {
- uMaxSize=lgAllSubFolderFileSize.QuadPart/1024;
- _tprintf(_T("FILE SIZE : %.4u KB \n"),(uMaxSize));
- }
- else if((lgAllSubFolderFileSize.QuadPart>1024*1024)&&(lgAllSubFolderFileSize.QuadPart<1024*1024*1024L))
- {
- uMaxSize=lgAllSubFolderFileSize.QuadPart/1024/1024;
- _tprintf(_T("FILE SIZE : %.4u MB \n"),(uMaxSize));
- }
- else
- {
- float fSize;
- fSize=(float)lgAllSubFolderFileSize.QuadPart/1024/1024/1024;
- _tprintf(_T("FILE SIZE : %.2f GB \n"),(fSize));
- }
- return 1;
- }
- }
- else
- {
- return 1;
- }
- }
- }
http://blog.csdn.net/microzone/article/details/49883783
win32命令行小程序获取指定文件夹或者目录下面的所有文件大小,文件数量,目录数量的更多相关文章
- 图解微信小程序---获取电影信息
图解微信小程序---获取电影信息 代码笔记 第一步:编写js文件,调用api获取相对应电影详情信息(注意带入的参数是id不在是榜单的type,电影api的movie后面又斜杠,别忘了,对应的绑定数据的 ...
- 使用.NET Core快速开发一个较正规的命令行应用程序
程序员的世界,命令行工具一直是"体验非常友好"的工具,也能自动化完成很多事情,同时还能结合shell来进行某项任务的批处理(脚本).在.NET Core中,命令行应用程序是基础,但 ...
- 微信小程序 获取用户openid
1,可以在小程序app.js入口文件中放入登录代码 wx.login({ success: res => { // 登录注册接口 if (res.code) { // 调用服务端登录接口,发送 ...
- 转】未指定 INSTANCESHAREDWOWDIR 命令行值。如果指定INSTANCESHAREDDIR 值,则必须指定该值 .
插入光盘后不要用autorun的安装,使用命令行安装!cd进安装光盘的根目录,输入命令:setup.exe /INSTALLSHAREDDIR="D://Program Files//Mic ...
- Android中使用am命令实现在命令行启动程序详解
在Android中,除了从界面上启动程序之外,还可以从命令行启动程序,使用的是命令行工具am. 复制代码代码如下: usage: am [subcommand] [options] start an ...
- 微信小程序-获取经纬度
微信小程序-获取经纬度 最近公司新功能 要求在外的市场人员 发送位置信息回来. 用的还是微信小程序开发.... 微信小程序 提供一个接口 getLocation 这个接口反回来的位置 相对实际位置 相 ...
- 微信小程序获取Access_token和页面URL生成小程序码或二维码
1.微信小程序获取Access_token: access_token具体时效看官方文档. using System; using System.Collections.Generic; using ...
- [微信小程序] 微信小程序获取用户定位信息并加载对应城市信息,wx.getLocation,腾讯地图小程序api,微信小程序经纬度逆解析地理信息
因为需要在小程序加个定位并加载对应城市信息 然而小程序自带api目前只能获取经纬度不能逆解析,虽然自己解析方式,但是同时也要调用地图,难道用户每次进小程序还要强行打开地图选择地址才定位吗?多麻烦也不利 ...
- thinkphp3.2.3 小程序获取手机号 php 解密
首先是把这个文件夹放到\ThinkPHP\Library\Org里面 //zll 根据加密字符串和session_key和iv获取手机号 /** * [getphone description] * ...
随机推荐
- SpringMVC学习总结(2)——SpringMVC返回json配置
<!-- 避免IE执行AJAX时,返回JSON出现下载文件 --> <bean id="mappingJacksonHttpMessageConverter" c ...
- cocos2dx--vs2012+lua开发环境搭建
cocos2dx版本号:cocos2dx2.2.3 lua插件:babelua 1.5.3 下载地址:http://pan.baidu.com/s/1i3mPD8h 第一步:先关闭vs,双击下载下来 ...
- Validation failed for query for method public abstract boxfish.bean.Student boxfish.service.StudentServiceBean.find(java.lang.String)!
转自:https://blog.csdn.net/lzx925060109/article/details/40323741 1. Exception in thread "main&quo ...
- 《你不知道的JavaScript(上)》笔记——提升
笔记摘自:<你不知道的JavaScript(上)>第3章 提升 1.包括变量和函数在内的所有声明都会在任何代码被执行前首先被处理. 2.变量和函数声明从它们在代码中出现的位置被“移动”到了 ...
- NVL与NVL2
一.NVL函数是一个空值转换函数 NVL(表达式1,表达式2) 如果表达式1为空值,NVL返回值为表达式2的值,否则返回表达式1的值. 该函数的目的是把一个空值(null)转换成一个实际的 ...
- UVA 11728 - Alternate Task (数论)
Uva 11728 - Alternate Task 题目链接 题意:给定一个因子和.求出相应是哪个数字 思路:数字不可能大于因子和,对于每一个数字去算出因子和,然后记录下来就可以 代码: #incl ...
- 解决linux下cocos2dx不能播放声音
cocos2dx2.2.1在linux下引用#include "SimpleAudioEngine.h".报错找不到该文件. 改动makefile文件,加入 SHAREDLIBS ...
- js cookie可选参数(document.cookie='name=张三;expires='+day;)
js cookie可选参数(document.cookie='name=张三;expires='+day;) 一.总结 1.可用secure属性来设置安全协议传输 2.expire属性用的比较多,其它 ...
- 小白学开发(iOS)OC_ 使用继承来扩充类(2015-08-07)
// // main.m // 使用继承来扩充类 // // Created by admin on 15/8/12. // Copyright (c) 2015年 admin. All ri ...
- HDU 1013 Digital Roots 题解
Problem Description The digital root of a positive integer is found by summing the digits of the int ...