
VC++文件操作
小米的修行之路
是日已过,命亦随减;如少水鱼,斯有何乐?当勤精进,如救头燃!但念无常,慎勿放逸。
展开
-
判断是否是空文件夹
1、代码:返回true,则为空文件夹。bool IsFolderEmpty(CString strPath){ CFileFind ff; bool bRet = false; CString strFilePaht = strPath + "\\*.*"; bRet = ff.FindFile(strFilePaht); while (bRet) { bRet = ff.FindNextFile(); if (!ff.IsDots()) { ff.Close();原创 2020-07-20 16:39:17 · 1111 阅读 · 0 评论 -
设置程序配置文件路径
// test12.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "Windows.h"/* 功能:根据exe所在目录,设置配置文件所在目录. 例如:exe目录:D:\QT\test12\Debug 设置配置文件所在目录为:D:\QT\test12\Debug\config\11exe.ini*/int...原创 2018-07-11 10:50:57 · 1049 阅读 · 0 评论 -
获取ini文件中某个section的所有Key和Value
// test12.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include "Windows.h"#include "iostream"using namespace std;/* 解决_tprintf中文打印乱码*/#include <locale.h> /* 功能:定义一个结构体存放Key的名字...原创 2018-07-11 15:06:21 · 9361 阅读 · 0 评论 -
封装CreateDirectory()函数,同时创建多级目录
我们都知道CreateDirectory()函数创建目录只能一级一级的创建,中间层级不存在,后面的目录也创建不成功,先封装了函数来同时创建多级目录:BOOL CreateMultiDir(TCHAR* szPathDir){ TCHAR szPath[MAX_PATH] = {0}; TCHAR szbuf[MAX_PATH] = {0}; BOOL bFlag = FALSE;...原创 2018-07-11 16:12:07 · 3580 阅读 · 0 评论 -
删除过期文件夹中的文件封装类
#pragma onceclass CRemoveImageHandler{public: CRemoveImageHandler(void); ~CRemoveImageHandler(void); long Initialize(); long Release(); int m_nKeepSeconds;protected: static UINT _stdcall...原创 2019-04-29 15:02:57 · 249 阅读 · 0 评论 -
使用map以时间对文件夹进行排序
理论:摘自他人:map是用来存放<key, value>键值对的数据结构,可以很方便快速的根据key查到相应的value。假如存储学生和其成绩(假定不存在重名,当然可以对重名加以区分),我们用map来进行存储就是个不错的选择。 我们这样定义,map<string, int>,其中学生姓名用string类型,作为Key;该学生的成绩用int类型,作为value。这样一来,我们...原创 2018-06-21 10:06:17 · 796 阅读 · 2 评论 -
SetConsoleCtrlHandler处理控制台程序的消息
今天看一个控制台程序,此程序的功能是监视特定配置文件是否修改,使用了FindFirstChangeNotification()函数。其中涉及到当用户点击了控制台的“X”号时,如何使程序优雅的退出的问题,这样就不会产生内存泄露。采取截获控制台"X"号的点击时间的方法,然后给主线程发送一个WM_QUIT消息即可。程序代码如下:1、一个进程定时修改特定的配置文件:#include "stda原创 2018-02-04 13:05:04 · 1179 阅读 · 0 评论 -
sscanf:从一个字符串中读进与指定格式相符的数据
假如有 eng_1_2_3.jpg 的字符串,我们想取出其中的 1_2_3.jpg 子串,可以使用sscanf来实现。我们使用如下测试数据进行测试:测试代码如下:char szbuf[MAX_PATH] = {0},szbuf1[MAX_PATH] = {0},szbuf2[MAX_PATH] = {0}; FILE* fp = fopen("1.txt",原创 2017-09-03 14:42:57 · 582 阅读 · 0 评论 -
逐行读取文件内容的三种方法
方法一:采用Getline函数ifstream in("1.txt"); string line; int i = 0; if(in) // 有该文件 { while (getline (in, line)) // line中不包括每行的换行符 { cout << line<<" "<<i++<<endl; } }原创 2017-08-28 22:38:35 · 7171 阅读 · 0 评论 -
CreateFile、ReadFile、WriteFile和fread、fwrite两种读写文件的方法
相关函数的使用可以查看MSDN上的说明文档。本文只提供实例。程序需包含:#include “Windows.h”文件方法一、采用:CreateFile、ReadFile、WriteFileDWORD dwFileSize = 0; BYTE* buffer = NULL; HANDLE hFile = INVALID_HANDLE_VALUE; hF原创 2017-08-27 11:50:08 · 4560 阅读 · 0 评论 -
fopen等:文本方式和二进制方式打开文件的区别
文本方式和二进制方式在读写文件时是有区别的,以下主要对Windows系统下的一些不同进行说明。第一:1、使用二进制方式进行读文件时,会原封不动的读出全部的内容,写文件的时候,会把内存缓冲区的内容原封不动的写到文件中。2、使用文本方式进行读文件时,会将回车换行符号CRLF(0x0D OxOA)全部转换成单个的换行符号LF(OxOA),写文件的时候,会将换行符号LF( OxOA)全部转换成原创 2017-09-04 14:23:49 · 24929 阅读 · 2 评论 -
在VC中运用mkdir函数创建多级目录
mkdir函数只能在已存在的目录下建立一级子目录,如果有如此路径: C:\Documents \test\data,直接创建此目录是不能完成的,需要逐级进行创建。如下:假设szPath="C:\Documents \test\data"int CreateMultiPath(char* szPath){ char szFilePath[MAX_FILEPATH_LEN]; int原创 2016-01-22 14:47:35 · 3373 阅读 · 0 评论 -
使用批处理程序删除文件夹中的数据
我们想删除C:\\data中的数据如下: FILE *f=NULL; fopen_s(&f,"c:\\rm.bat","wt"); if (f) { fprintf(f,"rmdir /s/q %s\n",C:\\data); fprintf(f,"md %s\n",C:\\data); fclose(f); }ShellExecute(NULL, NULL原创 2016-01-22 15:25:51 · 755 阅读 · 0 评论 -
遍历删除非空文件夹
①、文件夹的创建:CreateDirectory※※※ 注意:此函数只能创建一层目录,比如想在 C 盘下的 Temp 目录下创建新目录为:123那么前提是 Temp 这个目录存在才可以!②、文件夹的删除:RemoveDirectory※※※ 注意:此函数只能删除一个空的目录,如果目录中有子目录或子文件的话会删除失败的!解决的方法是用 递归的思想,先将子文件删除,之后就可以删除一原创 2016-11-30 10:49:25 · 942 阅读 · 0 评论 -
SHBrowseForFolder目录选择对话框
1 TCHAR buffer[MAX_PATH]={0}; BROWSEINFO broinfo; broinfo.hwndOwner=m_hWnd; broinfo.iImage=0; broinfo.lParam=0; broinfo.lpfn=NULL; broinfo.lpszTitle=_T("请选择增强后存放图片的文件夹目录"); broinfo.原创 2017-01-06 14:13:50 · 760 阅读 · 0 评论 -
删除文件夹下所有文件
删除data文件夹下的所有文件int main(){ szSubDir=“C://data”; WIN32_FIND_DATA stFindData;HANDLE hFind = INVALID_HANDLE_VALUE;char szSearch[MAX_PATH] = {0}, szFile[MAX_PATH] =原创 2016-02-14 15:15:47 · 603 阅读 · 0 评论 -
VC删除只读属性文件、判断文件是否存在、判断路径是文件或目录
1、删除只读属性文件:BOOL DelReadOnlyFile(LPCTSTR lpszPath){DWORD dwRet = GetFileAttributes(lpszPath);if (dwRet == INVALID_FILE_ATTRIBUTES) return FALSE;if (dwRet & FILE_ATTRIBUTE_READONLY){dwRe原创 2016-04-27 14:30:52 · 1812 阅读 · 0 评论