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

//判断文件是否存在
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. Hicharts弄个样例

    前端的事情,但最好自己要了解一下,能作个最简单的东东出来... 样例,需要的时候,用用,就喟给它一样模板数据即可. PYTHON,把字典的键值和KEY值匹配成列表即可. $(function () { ...

  2. 使用Eclipse创建模板并格式化代码

    eclipse设置方式: window-preferences-->java-code Style-formatter 在编写完代码后使用代码格式化程序对代码进行格式化,有利于版本冲突时进行对比 ...

  3. ELK之topbeat部署

    topbeat定期收集系统信息如每个进程信息.负载.内存.磁盘等等,然后将数据发送到elasticsearch进行索引,最后通过kibana进行展示. 下面是具体的安装及配置步骤: 1.安装topbe ...

  4. [转]NHibernate之旅(3):探索查询之NHibernate查询语言(HQL)

    本节内容 NHibernate中的查询方法 NHibernate查询语言(HQL) 1.from子句 2.select子句 3.where子句 4.order by子句 5.group by子句 实例 ...

  5. Oracle体系结构图

    1 oracle数据库主要有数据文件database和数据库实例instance组成.用户通过用户进程链接到server process.在数据库启动的时候,需要依赖于参数文件parameter fi ...

  6. 前端模块化开发学习之gulp&browserify篇

     随着web应用的发展,前端的比重占得越来越多,编写代码从而也越来越复杂.而通常我们需要将不同功能或者不同模块的代码分开写,最后在html中一起加载,这样做是可以的,但是当你需要进行维护或者是二次开发 ...

  7. Linux 新手常用命令

    ubuntu的root用户默认是禁止的,需要手动打开才行 事实上ubuntu下的所有操作都用不到root用户,由于sudo的合理使用,避免了root用户下误操作而产生的毁灭性问题 root账号启用方法 ...

  8. strcpy,memcpy,内存块重叠

    前段时间准备面试,看了一些库函数的实现,在看到memcpy时,发现有处理source和destination所指内存有重叠的情况,而strcpy没有,特别模仿库函数写了这个函数,并进行了测试.以下是具 ...

  9. (转载)TRS内容管理平台用户注册逻辑漏洞

    首先 site:gov.cn inurl:WCM TRS 的内容管理系统是国内政府网站使用最多的系统之一 如上面所说:外交部 http://wcm.fmprc.gov.cn/wcm/ 网址加上:wcm ...

  10. hdoj 2404 Permutation Recovery【逆序对】

    Permutation Recovery Time Limit: 10000/4000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Ot ...