博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MFC常用操作
阅读量:4879 次
发布时间:2019-06-11

本文共 1736 字,大约阅读时间需要 5 分钟。

 

目录:

1.文件操作

1.1.获取文件大小

 2.路径操作

2.1.创建多级目录

 

 

 

1.文件操作

1.1.获取文件大小 

// 获取文件大小ULONGLONG size = 0;        // 文件大小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] 博文参考:

 

转载于:https://www.cnblogs.com/zhwm9521/p/7804135.html

你可能感兴趣的文章
CentOS如何安装linux桌面?
查看>>
Speech and Booth Demo in Maker Faire Shenzhen 2018
查看>>
bzoj 1670: [Usaco2006 Oct]Building the Moat护城河的挖掘
查看>>
bzoj 2281: [Sdoi2011]黑白棋
查看>>
bzoj 4475: [Jsoi2015]子集选取
查看>>
团队开发7
查看>>
java之静态代理与动态代理
查看>>
软件测试2019:第四次作业
查看>>
201571030335 + 小学四则运算练习软件项目报告
查看>>
不用代码就能实现get与post
查看>>
gdb基本调试命令
查看>>
互联网开放平台API安全设计
查看>>
复利计算--web版--总结--软件工程
查看>>
OPMN
查看>>
hdu 1999 不可摸数
查看>>
幂的求和取模
查看>>
LOG收集系统(一):原日志至收集
查看>>
【文摘】经营十二条
查看>>
清除浮动的方法
查看>>
Logstash连接Elasticsearch异常
查看>>