点击跳转到视频教程

代码:

#include<windows.h>
#include<tchar.h>
#include<iostream>
using namespace std;
int WINAPI _tWinMain(HINSTANCE hinstance, HINSTANCE hPreInstance, LPTSTR lpCmdLine, int nShowCmd) {HANDLE hFile = CreateFile(_T("D:\\123.txt"), GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);if (hFile != INVALID_HANDLE_VALUE){// 注意由于 DWORD 占32位,所以最大只能获取到4GB文件大小,文件超过4GB,就获取的不对DWORD dwFileSize = GetFileSize(hFile, NULL);TCHAR szFileSize[128] = {0};_stprintf(szFileSize, _T("文件的大小是:%d"), dwFileSize);// 只有打开成功的时候才关闭句柄,打开失败的时候hFile不需要关闭CloseHandle(hFile);MessageBox(NULL, szFileSize, _T("tip"), MB_OK);}else{MessageBox(NULL, _T("打开文件失败"), _T("tip"), MB_OK);}return 0;
}

运行报错:

 error C4996: 'sprintf': This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.


解决办法:
报错信息中提示我们使用这个宏

点击 调试 -> 属性 -> c/c++ -> 预处理器 -> 预处理器定义 -> 添加宏 -> 确定 然后重新运行


重新运行成功

如果文件大小超过了4GB,则获取的结果不正确


更正后的程序如下:

#include<windows.h>
#include<tchar.h>
#include<iostream>
using namespace std;
int WINAPI _tWinMain(HINSTANCE hinstance, HINSTANCE hPreInstance, LPTSTR lpCmdLine, int nShowCmd) {//"D:\\123.txt"//HANDLE hFile = CreateFile(_T("F:\\Android逆向\\YS031\\11android源码分析.rar"), GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);//if (hFile != INVALID_HANDLE_VALUE)//{//   // 注意由于 DWORD 占32位,所以最大只能获取到4GB文件大小,文件超过4GB,就获取的不对//   DWORD dwFileSize = GetFileSize(hFile, NULL);// TCHAR szFileSize[128] = {0};// _stprintf(szFileSize, _T("文件的大小是:%d"), dwFileSize);//  // 只有打开成功的时候才关闭句柄,打开失败的时候hFile不需要关闭//    CloseHandle(hFile);//   MessageBox(NULL, szFileSize, _T("tip"), MB_OK);//}//else//{// MessageBox(NULL, _T("打开文件失败"), _T("tip"), MB_OK);//}HANDLE hFile = CreateFile(_T("F:\\Android逆向\\YS031\\11android源码分析.rar"), GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);if (hFile != INVALID_HANDLE_VALUE){DWORD dwFileSizeHigh = 0;// 注意由于 DWORD 占32位,所以最大只能获取到4GB文件大小,文件超过4GB,就获取的不对DWORD dwFileSize = GetFileSize(hFile, &dwFileSizeHigh);LONGLONG llFileSize = (((LONGLONG)dwFileSizeHigh << 32)) | dwFileSize;TCHAR szFileSize[128] = { 0 };_stprintf(szFileSize, _T("文件的大小是:%lld"), llFileSize);MessageBox(NULL, szFileSize, _T("tip"), MB_OK);// 只有打开成功的时候才关闭句柄,打开失败的时候hFile不需要关闭CloseHandle(hFile);}else{MessageBox(NULL, _T("打开文件失败"), _T("tip"), MB_OK);}return 0;
}

运行结果如下,和文件实际大小一致

Windows 查看文件大小相关推荐

  1. du 查看文件大小命令

    du -ah --max-depth=1     这个是我想要的结果  a表示显示目录下所有的文件和文件夹(不含子目录),h表示以人类能看懂的方式,max-depth表示目录的深度. du -sh 目 ...

  2. linux中文件大小10,Linux之查看文件大小

    1.查看当前文件大小du -sh ./ du [-abcDhHklmsSx] [-L ][-X ][--block-size][--exclude=] [--max-depth=][--help][- ...

  3. ftp服务器上查看文件大小,ftp服务器上查看文件大小

    ftp服务器上查看文件大小 内容精选 换一换 当用户拥有Linux操作系统的外部镜像文件,且类型及操作系统符合外部镜像文件格式和操作系统类型要求时,用户可以将外部镜像文件创建为Linux系统盘镜像. ...

  4. linux显示总文件大小命令,linux查看文件大小命令

    linux系统不像windows系统,查看文件可以随时点击右键,linux中碳钢命令来查看文件大小,下面由学习啦小编为大家整理了linux查看文件命令的相关知识,希望对大家有帮助! linux查看文件 ...

  5. xshell查看文件大小和删除文件

    一.xshell下查看文件个数及大小 1.查看当前目录下的文件数量: ls -l |grep "^-"|wc -l 或 find ./folder_name -type f | w ...

  6. linux各目录的文件大小,Linux下查看文件大小和目录大小以及目录下文件的大小...

    在linux中经常会查看文件大小,通常用的命令du: 该命令详细解释如下: [www@server101 logs]$ du --help 用法:du [选项]... [文件]... 或:du [选项 ...

  7. Linux系统编程之查看文件大小的方法(lseek_fseek_stat)

    Linux系统编程之查看文件大小的方法(lseek.fseek.stat)三种方法: #include <stdio.h> #include <fcntl.h> #includ ...

  8. Linux系统编程之查看文件大小的方法(lseek and stat)

    Linux系统编程之查看文件大小的方法:1.使用lseek函数,2.使用stat函数.直接上代码 #include <stdio.h> #include <stdlib.h> ...

  9. linux之查看文件大小和磁盘大小总结

    1 .查看文件大小 使用du命令,查看该目录以及子目录文件的大小 du -h 如果只需要快速查看这个目录占用大小,可用下面命令 du -sh 比如我们查看xiaoyun这个文件大小 2.查看电脑磁盘大 ...

最新文章

  1. window10+python3.7安装tensorflow--gpu tensorflow 安装
  2. setstate是同步还是异步_【vert.x准备篇1】同步和异步,阻塞和非阻塞概念澄清
  3. IOS/Android模拟器运行APP调试方法
  4. 刚才我提出要把数据库处理部分放到代码里,但是有人提出,存储过程有缓存,速度快。我该怎么说啊?...
  5. .NET CF WM上创建快捷方式
  6. Ardino基础教程 20_红外遥控
  7. 五款好评如潮的手机APP分享 用起来绝对好用!
  8. Linux下make使用gcc编译,Linux下GCC和Makefile实例(从GCC的编译到Makefile的引入)
  9. 所有的面试问题都可以归结为这三类(附回答套路)
  10. Javascript的数组操作(笔记)
  11. window下用主机名登录MySQL数据库出现报错解决方案
  12. java-多线程安全问题
  13. 「13」朴素贝叶斯Python实战:计算打喷嚏的工人患上新冠肺炎的概率
  14. canvas和svg
  15. iOS开发--Swift RAC响应式编程初探
  16. macos server 恢复安装_Sinter:一款针对macOS的用户模式应用程序授权系统
  17. vs2019键盘钩子_江门网站建设:针对Web开发人员的12个最佳Visual Studio代码扩展
  18. js分页组件laypage
  19. java 如何查看文件编码_java判断文件编码 终于弄懂了编码是怎么回事
  20. 干货 | 收藏贴!一文看懂静态资源服务沉浮及其在携程的演进

热门文章

  1. carsim与simulink联合仿真-matlab版本切换
  2. 基础算法 - 树的直径
  3. 【Matlab】Simulink系统仿真(了解)
  4. java毕业设计鸿鹄教育培训(附源码、数据库)
  5. java模拟网易邮箱登录_java实现163邮箱发送邮件到qq邮箱成功案例
  6. javascript跳转页面
  7. qiime2安装后的使用
  8. diskman DiskGenius 恢复windows管理中删除分区数据
  9. 安化县东坪完小师生们顺利完成云台山风景区研学之旅
  10. nginx通过获取环境变量实现动态IP代理配置