在开发编译工具中,需要用到文件的相关操作,于是就封装了相关的函数实现:

//判断文件是否存在
BOOL FileIsExist(CString strFileName)
{
CFileFind finder;
BOOL bWorking = finder.FindFile(strFileName);
while(bWorking)
{
return TRUE;
}
return FALSE;
}
//获取ini文件信息
CString GetIniString(CString strAppName, CString strKeyName, CString strDefault, CString strFileName)
{
CString strRet;
const int nMaxLength = 1024;
GetPrivateProfileString(strAppName, strKeyName, strDefault,strRet.GetBuffer(nMaxLength), nMaxLength,strFileName);
strRet.ReleaseBuffer();
return strRet;
} // 得到文件的后缀名
CString GetFileExtension(CString fileName)
{
CString strFileNameExt = TEXT(""); int nPosExt = fileName.ReverseFind(TEXT('.'));
strFileNameExt = fileName.Right(fileName.GetLength() - nPosExt - 1);
return strFileNameExt;
} //获取运行路径
CString GetRunPath()
{ TCHAR cbFilename[MAX_PATH + 1]={'\0'};
GetModuleFileName(NULL, cbFilename, MAX_PATH);
CString strPath=cbFilename;
strPath=strPath.Left(strPath.ReverseFind('\\'));
return strPath;
} // 根据一个路径创建目录
void CreatePath(CString strPath)
{
CString dirName;
CString strSub;
CString strDrive;
int nPos = 0; nPos = strPath.Find(TEXT(":"));
dirName = strPath.Right(strPath.GetLength() - nPos -1);
strDrive = strPath.Left(nPos + 1);
int ia = 1;
while (1)
{
AfxExtractSubString(strSub, dirName, ia, TEXT('\\'));
if (TEXT("") == strSub)
{
break;
}
ia++;
strDrive += TEXT("\\") + strSub;
if (!PathFileExists(strDrive))
{
CreateDirectory(strDrive, NULL);
}
}
} // 删除一个目录下的所有文件
bool DeleteDirFiles(CString strDir)
{
// CreateDirectory(strDir, NULL);
CreatePath(strDir);
CFileFind finder;
CString strFindDir; strFindDir.Format(TEXT("%s\\*.*"), strDir);
// MessageBox(strFindDir);
BOOL bWorking = finder.FindFile(strFindDir);
while(bWorking)
{
bWorking = finder.FindNextFile(); if (!finder.IsDirectory())
{
DeleteFile(finder.GetFilePath());
}
}
finder.Close();
return false;
} //根据路径获取文件名
CString GetFileNameFromPath(CString strPath)
{
CString strDirName = TEXT(""); int nPos = strPath.ReverseFind(TEXT('\\'));
if (-1 != nPos)
{
strDirName = strPath.Right(strPath.GetLength() - nPos -1);
} return strDirName;
}

  

VC++文件相关操作的函数封装实现的更多相关文章

  1. Git基本命令 -- 基本工作流程 + 文件相关操作

    可以先找一个已经被git管理的项目, 我就使用这个项目吧: https://github.com/solenovex/ID3-Editor 基本工作流程 克隆以后呢, 进入该目录查看一下状态: 然后添 ...

  2. python文件相关操作

    Python文件相关操作 打开文件 打开文件,采用open方法,会将文件的句柄返回,如下: f = open('test_file.txt','r',encoding='utf-8') 在上面的代码中 ...

  3. Nodejs文件相关操作

    欢迎关注我的博客我在马路边 适用人群 本文适用于刚接触Node的小白,毕竟我也是小白,大佬请绕行. Node文件操作 在实际开发中遇到很多有关文件及文件夹的操作,比如创建.删除文件及文件夹,文件拷贝. ...

  4. 【Linux 应用编程】文件IO操作 - 常用函数

    Linux 系统中的各种输入输出,设计为"一切皆文件".各种各样的IO统一用文件形式访问. 文件类型及基本操作 Linux 系统的大部分系统资源都以文件形式提供给用户读写.这些文件 ...

  5. IO文件相关操作

    IO编程 IO 即Input/Output  input stream 就是数据从外面(磁盘.网络)流进内存,output stream 就是数据从内存流到外面去. 通常cpu 和 内存的速度远远高于 ...

  6. UNIX高级环境编程(5)Files And Directories - 文件相关时间,目录文件相关操作

     1 File Times 每个文件会维护三个时间字段,每个字段代表的时间都不同.如下表所示: 字段说明: st_mtim(the modification time)记录了文件内容最后一次被修改的时 ...

  7. c语言中文件相关操作

    一 .首先介绍一下数据文件的类型: 1.二进制文件(映像文件):在内存中以二进制形式存取. 2.文本文件(ascii文件):以ascii码形式存取的文件. 通俗的讲,在Mac下,你把一个文件丢进记事本 ...

  8. UWP中的文件相关操作

    最近开始做UWP开发,图省事儿就把自己之前一个Winform项目的一部分代码拷贝到了新写的UWP项目中来.整出了一些幺蛾子,下面做一个记录. 首先提一个重点就是:UWP里关于文件的操作尽量用Stora ...

  9. 【原创】Linux基础之gz文件相关操作

    gz文件不需要解压即可进行相关操作 $ zcat test.log.gz $ zmore test.log.gz $ zless test.log.gz $ zgrep '1.2.3.4' test. ...

随机推荐

  1. 系统调用与API的区别

    整理自系统调用与API的区别 1.为什么用户程序不能直接访问系统内核模式提供的服务? 答:在linux中,将程序的运行空间分为内核与用户空间(内核态和用户态),在逻辑上它们之间是相互隔离的,因此用户程 ...

  2. Performance Test of List<T>, LinkedList<T>, Queue<T>, ConcurrentQueue<T>

    //Test Group 1 { var watch = Stopwatch.StartNew(); var list = new List<int>(); ; j < ; j++) ...

  3. 使用HttpURLConnection向服务器发送post和get请求

    一.使用HttpURLConnection向服务器发送get请求 1.向服务器发送get请求 @Test publicvoid sendSms() throws Exception{ String m ...

  4. nc 命令汇总

    转自: http://blog.chinaunix.net/uid-20068039-id-359170.html 1.远程拷贝文件从server1拷贝文件到server2上.需要先在server2上 ...

  5. Android的十六进制颜色值

    [转自]: http://blog.csdn.net/fxtxz2/article/details/7598256 颜色和不透明度 (alpha) 值以十六进制表示法表示.任何一种颜色的值范围都是 0 ...

  6. Mac 下配置XAMPP

    1:去官方下载 2:安装dmg 3:安装完成后, 网页上提示, 要设置相应的密码, 设置完成. 4:打开对应的app程序, 把 mysql Database运行起来, 不然, 网页上看到的就是未运行状 ...

  7. 【转】LINUX系统I/O复用技术之二:poll() -- 不错

    原文网址:http://www.cnblogs.com/alyssaCui/archive/2013/04/01/2993886.html poll poll或select为大部分Unix/Linux ...

  8. 段错误调试神器 - Core Dump详解

    一.前言: 有的程序可以通过编译, 但在运行时会出现Segment fault(段错误). 这通常都是指针错误引起的. 但这不像编译错误一样会提示到文件某一行, 而是没有任何信息, 使得我们的调试变得 ...

  9. 算法 python实现(二) 冒泡排序

    首先说一下 冒泡排序 是怎么做的: 总体的想法是,把小的轻的浮上前面去,把大的重的沉到后面去. 这样设置两个指针,i j, 1. i标识每一趟循环.这一趟的目的是把后面那些未排序的数列中最小的浮上前面 ...

  10. ARM学习笔记5——程序状态寄存器

    当前程序状态寄存器CPSR可以在任何位处理器模式下被访问,它包含条件码标志.中断控制.当前处理器模式以及其他状态和控制信息.CPSR的结构图如下: 一.条件标志位 CPSR最高4位:N(Negativ ...