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

//判断文件是否存在
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. cf 219D

    树形dp; 思想: 把正向边赋值为0:反向边赋值为1:然后求出点到其他点的最小距离: 两次dfs: 第一次是从下往上:记录每个点到所有子树中需要改变的边的条数: 第二次是自上往下:由父节点求子节点到所 ...

  2. Wild Words

    poj1816:http://poj.org/problem?id=1816 题意:给你n个模板串,然后每个串除了字母,还有?或者*,?可以代替任何非空单个字符,*可以替代任何长度任何串,包括空字符串 ...

  3. 【BZOJ 3110】 [Zjoi2013]K大数查询(整体二分)

    [题目] Description 有N个位置,M个操作.操作有两种,每次操作如果是1 a b c的形式表示在第a个位置到第b个位置,每个位置加入一个数c如果是2 a b c形式,表示询问从第a个位置到 ...

  4. 利用if else 求已发奖金总数

    class Program    {        static void Main(string[] args)        {            while (true)           ...

  5. bzoj1085

    肯定是搜索题无疑问, 首先要求在15步以内(包括15步)到达目标状态,也就是限定了搜索的深度,于是我们用dfs更合适 但这样复杂度仍然太大,原因就是我们在搜索中做了很多很不优的尝试 考虑当前状态若与目 ...

  6. WordPress WP-Realty插件‘listing_id’参数SQL注入漏洞

    漏洞名称: WordPress WP-Realty插件‘listing_id’参数SQL注入漏洞 CNNVD编号: CNNVD-201310-499 发布时间: 2013-10-23 更新时间: 20 ...

  7. Apache 'mod_accounting'模块SQL注入漏洞(CVE-2013-5697)

    漏洞版本: mod_accounting 0.5 漏洞描述: BUGTRAQ ID: 62677 CVE ID: CVE-2013-5697 mod_accounting是Apache 1.3.x上的 ...

  8. 基于开源软件在Azure平台建立大规模系统的最佳实践

    作者 王枫 发布于2014年5月28日 前言 Microsoft Azure 是微软公有云的唯一解决方案.借助这一平台,用户可以以多种方式部署和发布自己的应用. 这是一个开放的平台,除了对于Windo ...

  9. 你所不知道的C++

    C++与C的不同 C++从诞生之初就号称和C是兼容的,正是这种兼容,使C++得以迅猛发展,然而也正是这种兼容,让C++背上了沉重的历史包袱.且不论其利弊,让我们来看看C++在兼容C的那部分中,与C语言 ...

  10. EF中执行存储过程,获取output返回值

    EF不能直接支持执行存储过程,于是使用转化成执行SQL语句的形式,却怎么也获取不到output的值,折腾的好久,终于解决了,分享下曲折的经历: public int AddVote(int title ...