读写ini:

char BkIsEncrypt[50] = {0};
GetPrivateProfileString("TaskSetting", "IsEncrypt", "", BkIsEncrypt, 10, "c:\\a.txt");WritePrivateProfileString("TaskSetting", "IsEncrypt", "Y", pIniFilePath);

读写sqlite数据库:

BOOL CDBDataBackup::WriteTask ( TAG_KDS_BK_TASK &Task )
{DebugPrintf("Write Task Begin") ;BOOL bRet = FALSE ;string  strSql ;string  strSqlTID ;char chSql[2048] = {0} ;int  IsReport = FALSE ;string strTime = GetCurtime().c_str();char chTime[50];strcpy(chTime, strTime.c_str());char chSqlTID[1024] = {0};strSql = "Insert into DataBackupTask (TaskIndex, TaskName, TaskStatus, CreateTime, LastBuTime, SrcPath, DestPath, LocalOrNet,""IsIncrease, IsSync, IsEncry, IsClock, ExecPlan, IsFile) Values (%d, '%s', %d, '%s','%s','%s','%s', %d, %d, %d, %d, %d, '%s',%d)";sprintf  ( chSql, strSql.c_str(), Task.dwTaskIndex, Task.chBkTaskName, Task.dwTaskStatus, Task.chCreateTime, chTime, Task.chSrcPath, Task.chDstPath, Task.dwTaskBkMode, Task.dwIsIncrease, Task.dwIsSync, Task.dwIsEncrypt, Task.dwIsClock, Task.chExecPlan, Task.dwIsFile);strSql = chSql;strSqlTID = "select TaskIndex from DataBackupTask where TaskName = '%s' and SrcPath = '%s' and TaskStatus = '1'";sprintf ( chSqlTID, strSqlTID.c_str(), Task.chBkTaskName, Task.chSrcPath);strSqlTID = chSqlTID;if(RTN_SUCCESS != m_sqliteDataBase.RunSql(strSql.c_str())){return FALSE;}int nRow     = 0;int nColumn  = 0; char** szRet = NULL;if(RTN_SUCCESS != m_sqliteDataBase.Select(strSqlTID.c_str(), &szRet, &nRow, &nColumn)){return FALSE;}return TRUE;
}

文件(夹)操作:

#pragma once
#include <Windows.h>
#include <vector>inline BOOL IsDir(PTCHAR pDir)//是否是目录(存在才能判断)
{DWORD dwFileType;dwFileType = GetFileAttributes(pDir);if(dwFileType == INVALID_FILE_ATTRIBUTES)return FALSE;if(dwFileType & FILE_ATTRIBUTE_DIRECTORY){return TRUE;}else{return FALSE;}
}inline BOOL IsFile(PTCHAR pDir)//是否是文件(存在才能判断)
{DWORD dwFileType;dwFileType = GetFileAttributes(pDir);if(dwFileType == INVALID_FILE_ATTRIBUTES)return FALSE;if(dwFileType & FILE_ATTRIBUTE_DIRECTORY){return FALSE;}else{    return TRUE;}
}inline CString GetFileNameFromFullPath(CString strFullPath)//全路径获取文件名
{CString strRetun = strFullPath;int pos = strRetun.ReverseFind(_T('\\'));if(pos != -1){strRetun.Delete(0, pos + 1);}return strRetun;
}inline CString GetNameWithoutExtend(CString strFileName)//文件名去掉后缀
{CString strRetun = strFileName;int pos = strRetun.ReverseFind(_T('.'));if(pos != -1){strRetun = strRetun.Left(pos);}return strRetun;
}inline CString GetExtend(CString strFileName)//文件名获取后缀
{CString strRetun = strFileName;int pos = strRetun.ReverseFind(_T('.'));if(pos != -1){strRetun.Delete(0, pos);}else{strRetun= "";}return strRetun;
}inline CString GetFilePathFromFullPath(CString strFullPath)//全路径获取文件路径(去掉文件名)
{CString strRetun = strFullPath;int pos = strRetun.ReverseFind(_T('\\'));if(pos != -1){strRetun = strRetun.Left(pos);}return strRetun;
}inline BOOL myCopyFile(CString strSrcFullPath, CString strDestPath)//复制文件
{CString strRetun = strSrcFullPath;int pos = strRetun.ReverseFind(_T('\\'));if(pos != -1){strRetun.Delete(0, pos + 1);}strDestPath = strDestPath + "\\" +strRetun;CopyFile(strSrcFullPath, strDestPath, FALSE);return TRUE;
}inline void MyCopyDocument(CString pSrc, CString pDest)//复制文件夹
{TCHAR szFind[100] = {0};WIN32_FIND_DATA FindFileData;HANDLE hFind = NULL;_tcscpy_s(szFind,pSrc);_tcscat_s(szFind,_T("\\*.*"));hFind=::FindFirstFile(szFind,&FindFileData);if(INVALID_HANDLE_VALUE==hFind)return;while(TRUE){if(FindFileData.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY){if(FindFileData.cFileName[0]!='.')  {_tcscpy_s(szFind,pSrc);_tcscat_s(szFind,_T("\\"));_tcscat_s(szFind,FindFileData.cFileName);CString DestPath = pDest + "\\" + FindFileData.cFileName;CString SrcPath = pSrc + "\\" + FindFileData.cFileName;CreateDirectory(DestPath, NULL);MyCopyDocument(SrcPath, DestPath);}    }else{if(FindFileData.cFileName[0]!='.')  {CString DestPath = pDest + "\\" + FindFileData.cFileName;CString SrcPath = pSrc + "\\" + FindFileData.cFileName;CopyFile(SrcPath, DestPath, FALSE);}}if(!FindNextFile(hFind,&FindFileData))break;}FindClose(hFind);
}inline CString GetDllPathByName(CString dllName)    //取得dll路径(不包含名称)
{CString strRetun = _T("");#ifdef _UNICODETCHAR szBuff[MAX_PATH] = {0};HMODULE module = GetModuleHandle(dllName); GetModuleFileName(module, szBuff, sizeof(szBuff)); strRetun.Format(_T("%s"),szBuff);#elseHMODULE module = GetModuleHandle(dllName); CHAR szBuff[MAX_PATH] = {0}; GetModuleFileName(module, szBuff, sizeof(szBuff)); strRetun.Format(_T("%s"),szBuff);
#endif int pos = strRetun.ReverseFind(_T('\\'));if(pos != -1){strRetun = strRetun.Left(pos);}return strRetun;
}inline DWORD ParseDiskName(std::vector<CString> *v_disks)// 解析机器上能扫描的磁盘的名
{CString pszWordTable = "abcdefghijklmnopqrstuvwxyz";DWORD dwDisk;DWORD dwBase = 0x1;DWORD dwCount = 0;          // 记录磁盘数量DWORD dwScanCount = 0;      // 要扫描的有效磁盘数量,用于返回
    DWORD dwStyle;TCHAR szDiskPath[4] = {0};                  // 缓存一个磁盘根目录名//TCHAR szDiskArray[26] = {0};                // 记录要扫描的所有磁盘名dwDisk = GetLogicalDrives();while (dwDisk && dwCount <= pszWordTable.GetLength()){memset(szDiskPath, 0, sizeof(szDiskPath));if (dwDisk & dwBase){sprintf_s(szDiskPath, "%c", pszWordTable[dwCount]);lstrcat(szDiskPath, TEXT(":"));dwStyle = GetDriveType(szDiskPath);// 是否可扫描的if (DRIVE_REMOVABLE == dwStyle || DRIVE_FIXED == dwStyle){//szDiskArray[dwScanCount] = pszWordTable[dwCount];v_disks->push_back(szDiskPath);dwScanCount++;}}   dwDisk = dwDisk & ~dwBase;dwBase = dwBase * 2;dwCount++;}//::lstrcpy(pszDiskName, szDiskArray);return dwScanCount;
}

转载于:https://www.cnblogs.com/wffos/p/7308331.html

win32常用文件操作相关推荐

  1. Python十大常用文件操作

    日常对于批量处理文件的需求非常多,用Python写脚本可以非常方便地实现,但在这过程中难免会和文件打交道,第一次做会有很多文件的操作无从下手,只能找度娘. 本篇文章整理了10个Python中最常用到的 ...

  2. python删除txt文件第三行_真香!Python十大常用文件操作,轻松办公

    日常对于批量处理文件的需求非常多,用Python写脚本可以非常方便地实现,但在这过程中难免会和文件打交道,第一次做会有很多文件的操作无从下手,只能找度娘. 本篇文章整理了10个Python中最常用到的 ...

  3. php中文件操作函数,php中常用文件操作函数介绍

    小编今天来给php初学者介绍php文件操作的常用函数使用方法总结,包括:文件读写,创建,查看文件属性,文件删除等等关于文件的操作. 在对一个文件进行访问之前,一般我们都需要判断文件是否存在,以免调用了 ...

  4. 写了 30 多个 Go 常用文件操作的示例,收藏这一篇就够了

    Go官方提供的文件操作标准库分散在os.ioutil等多个包中,里面有非常多的方法涵盖了文件操作的所有场景,不过因为我平时开发过程中需要直接操作文件的场景其实并不多,在加上 Go 标准库的文档太难搜索 ...

  5. php打开文件读写函数,php中常用文件操作读写函数介绍

    本文章介绍了下面几个常用的文件操作函数 file_get_contents 读取整个文件内容 fopen 创建和打开文件 fclose 关闭文件 fgets 读取文件一行内容 file_exists ...

  6. [译]Go语言常用文件操作汇总

    Go官方提供的文件操作标准库分散在os.ioutil等多个包中,里面有非常多的方法涵盖了文件操作的所有场景,不过因为我平时开发过程中需要直接操作文件的场景其实并不多,在加上Go标准库的文档太难搜索,每 ...

  7. php文件读写用什么函数,php中常用文件操作读写函数介绍_PHP教程

    本文章介绍了下面几个常用的文件操作函数 file_get_contents 读取整个文件内容 fopen 创建和打开文件 fclose 关闭文件 fgets 读取文件一行内容 file_exists ...

  8. linux c文件操作,C语言文件操作(FILE)与常用文件操作函数

    文件 1.文件基本概念 C程序把文件分为ASCII文件和二进制文件,ASCII文件又称文本文件,二进制文件和文本文件(也称ASCII码文件)二进制文件中,数值型数据是以二进制形式存储的, 而在文本文件 ...

  9. 文件操作(FILE)与常用文件操作函数——C语言

    文件 1.文件基本概念 C程序把文件分为ASCII文件和二进制文件,ASCII文件又称文本文件,二进制文件和文本文件(也称ASCII码文件)二进制文件中,数值型数据是以二进制形式存储的, 而在文本文件 ...

最新文章

  1. 2018.08.10 atcoder Median Sum(01背包)
  2. 简明Linux命令行笔记:sort
  3. python推荐哪个系统好_什么是好的推荐系统?
  4. WMS Schema
  5. php怎么弄自动填充,ThinkPHP 自动填充(自动完成)详解及实例
  6. python index函数时间复杂度_如何确定Python中递归循环的时间复杂度?
  7. highcharts图表高级入门之polar:极地图的基本配置以及一些关键配置说明
  8. matlab迭代次数,怎么知道程序中的迭代次数呢
  9. leetcode 110 --- 判断给定的二叉树是否是平衡二叉树
  10. 开发者70行代码破解苹果OSX远程锁定安全功能
  11. lda 协方差矩阵_数据降维算法总结(LDAamp;PCA)
  12. win10 物理按键映射、快捷键修改
  13. Android开发视频教程,最全面的,总共200多集
  14. docker批量导出导入本地镜像
  15. 解决 pq: SSL is not enabled on the server
  16. 搜狗拼音输入法自定义格式的时间和日期并快捷键触发
  17. 库存流水账计算结余数量
  18. IDEA——问题汇总
  19. MFC应用中添加背景音乐,及音乐下载
  20. CSS盒子模型居中方法,web前端开发教程视频

热门文章

  1. LeetCode448-找到所有数组中消失的数字(原地数组)
  2. SVG 与 HTML5 的 canvas 相比较:
  3. mysql 的 distinct 去掉重复的数据
  4. maven添加sqlserver的jdbc驱动包
  5. (转)Android--sharepreference总结
  6. Linux系统资源控制
  7. EMS1.0.0项目的敏捷实践
  8. 更换高端游戏计算机故障电源,加内存条后电脑重启的解决办法游戏设备故障解决分享!...
  9. 跟踪 linux 内核调用_Linux用户和内核空间中的动态跟踪
  10. 讲故事形式解释什么是股票_讲故事的人可以教公开领导者什么