MFC常用操作
目录:
1.文件操作
1.1.获取文件大小
2.路径操作
2.1.创建多级目录
1.文件操作
1.1.获取文件大小
// 获取文件大小 ULONGLONG size = ; // 文件大小
CFileStatus fileStatus;
if (CFile::GetStatus(csFullFile, fileStatus))
{
size = fileStatus.m_size;
}
代码注解:
①ULONGLONG:实际上表示的是整型数据(typedef unsigned long long ULONGLONG;)
②CFileStatus:一个记录文件信息的结构体变量,记录文件的创建时间、修改时间、最后访问时间、文件大小(单位:字节)、文件属性、文件绝对路径等信息[1]
struct CFileStatus
{
CTime m_ctime; // creation date/time of file
CTime m_mtime; // last modification date/time of file
CTime m_atime; // last access date/time of file
ULONGLONG m_size; // logical size of file in bytes
BYTE m_attribute; // logical OR of CFile::Attribute enum values
BYTE _m_padding; // pad the structure to a WORD
TCHAR m_szFullName[_MAX_PATH]; // absolute path name #ifdef _DEBUG
void Dump(CDumpContext& dc) const;
#endif
};
其中的CTime是一个时间类,可以通过其成员函数GetYear()、GetMonth()、GetDay()、GetHour()、GetMinute()、GetSecond()获取时间。
2.路径操作
2.1.创建多级目录
// 功能:创建多级目录
bool CreateMultiDirectory(CString& csFullPath)
{
// 判断路径是否存在
if (PathIsDirectory(csFullPath))
{
return true;
} int iPos = csFullPath.ReverseFind('\\');
CString csFormerPath = csFullPath.Left(iPos);
if (!PathIsDirectory(csFormerPath))
{
CreateMultiDirectory(csFormerPath);
} CreateDirectory(csFullPath, NULL); // 创建路径 return true;
}
代码注解:
①由于CreateDirectory()只能创建一个目录,因此要实现多级目录的创建,使用到了递归的方法
②PathIsDirectory()判断路径是否为一个有效路径,还有一个相似的函数PathFileExists()判断路径是否存在,使用需要加上头文件Shlwapi.h[2]
③ReverseFind()是字符串类CString的一个成员函数,用于逆向(从右往左)查找指定字符(字符串)第一次出现的位置
④Left()也是字符串类CString的一个成员函数,用于截取从字符串开始(位置0)到指定字符的字串
备注:
[1] CFileStatus结构中_m_padding还不确定含义
[2] 博文参考:windows路径操作API函数
MFC常用操作的更多相关文章
- c++ MFC图像处理CImage类常用操作代码
原文作者:aircraft 原文地址:https://www.cnblogs.com/DOMLX/p/9598974.html MFC图像处理CImage类常用操作 CImage类头文件为#inclu ...
- NSString&NSMutableString常用操作梳理(转)
作者:弦苦 授权本站转载. 上一篇梳理了NSArray&NSMutableArray常用操作,这次来梳理一下Objective-C中每天都要用到的字符串处理类——NSString. Objec ...
- MFC图片操作
根据MFC要操作图片的来源,可分为以下两类: 一.非动态显示图片(即图片先通过资源管理器载入,有一个固定ID) 二.动态载入图片(即只需要在程序中指定图片的路径即可载入) 一.非动态显示图片 1.传送 ...
- NSString&NSMutableString常用操作梳理
http://www.cocoachina.com/ios/20150724/12722.html 上一篇梳理了NSArray&NSMutableArray常用操作,这次来梳理一下Object ...
- 【三】用Markdown写blog的常用操作
本系列有五篇:分别是 [一]Ubuntu14.04+Jekyll+Github Pages搭建静态博客:主要是安装方面 [二]jekyll 的使用 :主要是jekyll的配置 [三]Markdown+ ...
- php模拟数据库常用操作效果
test.php <?php header("Content-type:text/html;charset='utf8'"); error_reporting(E_ALL); ...
- Mac OS X常用操作入门指南
前两天入手一个Macbook air,在装软件过程中摸索了一些基本操作,现就常用操作进行总结, 1关于触控板: 按下(不区分左右) =鼠标左键 control+按下 ...
- mysql常用操作语句
mysql常用操作语句 1.mysql -u root -p 2.mysql -h localhost -u root -p database_name 2.列出数据库: 1.show datab ...
- nodejs配置及cmd常用操作
一.cmd常用操作 1.返回根目录cd\ 2.返回上层目录cd .. 3.查找当前目录下的所有文件dir 4.查找下层目录cd window 二.nodejs配置 Node.js安装包及源码下载地址为 ...
随机推荐
- kong安装
1 哪些企业在用KONG: Mashapoe Marketplace Buzzlogix Gengo IBM Intel OpenDNS 饿了么 Kong可与两种不同的组件协同工作: Nginx:Ko ...
- 20155314 2016-2017-2《Java程序设计》课程总结
20155314 2016-2017-2<Java程序设计>课程总结 每周作业链接汇总 预备作业1:刘子健的第一篇博客 预备作业2:刘子健的第二篇博客--有关CCCCC语言(・᷄ᵌ・᷅) ...
- 自动搭建ssm项目
手把手教你搭建ssm项目 注意,必须修改:包名.数据库名称.账号.密码 注意:必须配置好第一次,“引入后”才能配置第二次 第一步:打开idea选择创建maven项目 import java.io.*; ...
- 703. Kth Largest Element in a Stream
题目来源: https://leetcode.com/problems/kth-largest-element-in-a-stream/ 自我感觉难度/真实难度: 题意: 这个题目的意思解读了半天,没 ...
- OpenGL笔记(一) 绘制三角形
GLTools: 一些有用且可复用的函数 GLEW: OpenGL API的一些扩展机制 GLUT: OpenGL Utility toolkit, OpenGL跨平台相关,隐藏平台相关细节 RC代表 ...
- CANopen个人之所见,所想
一直想写一篇关于CANopen的文章,鉴于个人知识能力没有动笔,今天做了一番思想斗争,斗胆发表一下自己对CANOPEN的肤浅认识. 计划从销售人员,技术人员角度都分析一下CANopen的优势,文章可能 ...
- jQuery Nestable2 使用总结
最近,因为公司的一个新项目,用了一个基于bootstrap二次改造的国外友人的框架.感觉很一般吧,要求更换框架,客户拒绝.只能搞这个,发现里面一个jQuery插件-[Nestable]但是源作者长时间 ...
- spark上的一些常用命令(一)
1. 加速跑 spark-sql --name uername --num-executors --driver-memory 8G --executor-memory 8G 2. 上传数据 建表 ) ...
- Docker-CE-CentOS安装&更新&卸载
准备工作 系统准备 要求centos-7以上版本(包含7) 开启centos-extras 在线安装方式要求 卸载旧版本 卸载旧版本docker yum remove docker \ docker- ...
- 苏州Uber优步司机奖励政策(4月21日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...