目录:

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常用操作的更多相关文章

  1. c++ MFC图像处理CImage类常用操作代码

    原文作者:aircraft 原文地址:https://www.cnblogs.com/DOMLX/p/9598974.html MFC图像处理CImage类常用操作 CImage类头文件为#inclu ...

  2. NSString&NSMutableString常用操作梳理(转)

    作者:弦苦 授权本站转载. 上一篇梳理了NSArray&NSMutableArray常用操作,这次来梳理一下Objective-C中每天都要用到的字符串处理类——NSString. Objec ...

  3. MFC图片操作

    根据MFC要操作图片的来源,可分为以下两类: 一.非动态显示图片(即图片先通过资源管理器载入,有一个固定ID) 二.动态载入图片(即只需要在程序中指定图片的路径即可载入) 一.非动态显示图片 1.传送 ...

  4. NSString&NSMutableString常用操作梳理

    http://www.cocoachina.com/ios/20150724/12722.html 上一篇梳理了NSArray&NSMutableArray常用操作,这次来梳理一下Object ...

  5. 【三】用Markdown写blog的常用操作

    本系列有五篇:分别是 [一]Ubuntu14.04+Jekyll+Github Pages搭建静态博客:主要是安装方面 [二]jekyll 的使用 :主要是jekyll的配置 [三]Markdown+ ...

  6. php模拟数据库常用操作效果

    test.php <?php header("Content-type:text/html;charset='utf8'"); error_reporting(E_ALL); ...

  7. Mac OS X常用操作入门指南

    前两天入手一个Macbook air,在装软件过程中摸索了一些基本操作,现就常用操作进行总结, 1关于触控板: 按下(不区分左右)            =鼠标左键 control+按下        ...

  8. mysql常用操作语句

    mysql常用操作语句 1.mysql -u root -p   2.mysql -h localhost -u root -p database_name 2.列出数据库: 1.show datab ...

  9. nodejs配置及cmd常用操作

    一.cmd常用操作 1.返回根目录cd\ 2.返回上层目录cd .. 3.查找当前目录下的所有文件dir 4.查找下层目录cd window 二.nodejs配置 Node.js安装包及源码下载地址为 ...

随机推荐

  1. kubernetes 安装学习

    什么是Kubernetes Kubernetes是一个开源平台,用于跨主机群集自动部署,扩展和操作应用程序容器,提供以容器为中心的基础架构. 使用Kubernetes,您可以快速高效地响应客户需求: ...

  2. UCOS时钟节拍的讲究

    其实这个值取适中即可,100,200都行,看你的片子是什么,Cortex-M3的片子取200较合适这个值太小,系统调度周期较长,各个任务之间切换较慢,适时性降低,而太大了,中断周期与调试周期接近了,那 ...

  3. 如何向女朋友解释int==Integer为true

    原:https://juejin.im/post/5c7f3cb25188251b883cada2 int==Integer为什么返回true 先看现象吧 执行下面的代码及输出结果: int a = ...

  4. iOS 倒计时的一种实现

    1.view [self performSelectorInBackground:@selector(thread) withObject:nil]; - (void)thread { ;i>= ...

  5. PHP分行打印数组-php输出数组方法大全

    我们都知道php有两种方式可以打印数组 $arr = array( "a"=>"orange", "b"=>"bana ...

  6. WPF不同线程之间的控件的访问

    原文:WPF不同线程之间的控件的访问 WPF不同线程之间的控件是不同访问的,为了能够访问其他线程之间的控件,需要用Dispatcher.Invoke执行一个新的活动即可. 例如: public voi ...

  7. JavaEE笔记(三)

    缓存是通过map储存的     hibernate中一对一关系配置 // 如果A中有B 或者B中有A,那么为单项关联 // 如果A和B互有,那么为双向关联(最常用) class A{ private ...

  8. BZOJ1787_紧急集合_KEY

    题目传送门 LCA,对于每一个(x,y,z),两两求LCA得最优解或求出LCA不同于其他两组的那个为最优解. code: /************************************** ...

  9. 查内存命令之free

    磨砺技术珠矶,践行数据之道,追求卓越价值 回到上一级页面: PostgreSQL杂记页     回到顶级页面:PostgreSQL索引页 [作者 高健@博客园  luckyjackgao@gmail. ...

  10. python基础学习1-翻译程序(连接到有道翻译网)

    #!/usr/bin/env python # -*- coding:utf-8 -*- 爬虫程序 import urllib.request#导入 网络连接模块 import urllib.pars ...