win32常用文件操作
读写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常用文件操作相关推荐
- Python十大常用文件操作
日常对于批量处理文件的需求非常多,用Python写脚本可以非常方便地实现,但在这过程中难免会和文件打交道,第一次做会有很多文件的操作无从下手,只能找度娘. 本篇文章整理了10个Python中最常用到的 ...
- python删除txt文件第三行_真香!Python十大常用文件操作,轻松办公
日常对于批量处理文件的需求非常多,用Python写脚本可以非常方便地实现,但在这过程中难免会和文件打交道,第一次做会有很多文件的操作无从下手,只能找度娘. 本篇文章整理了10个Python中最常用到的 ...
- php中文件操作函数,php中常用文件操作函数介绍
小编今天来给php初学者介绍php文件操作的常用函数使用方法总结,包括:文件读写,创建,查看文件属性,文件删除等等关于文件的操作. 在对一个文件进行访问之前,一般我们都需要判断文件是否存在,以免调用了 ...
- 写了 30 多个 Go 常用文件操作的示例,收藏这一篇就够了
Go官方提供的文件操作标准库分散在os.ioutil等多个包中,里面有非常多的方法涵盖了文件操作的所有场景,不过因为我平时开发过程中需要直接操作文件的场景其实并不多,在加上 Go 标准库的文档太难搜索 ...
- php打开文件读写函数,php中常用文件操作读写函数介绍
本文章介绍了下面几个常用的文件操作函数 file_get_contents 读取整个文件内容 fopen 创建和打开文件 fclose 关闭文件 fgets 读取文件一行内容 file_exists ...
- [译]Go语言常用文件操作汇总
Go官方提供的文件操作标准库分散在os.ioutil等多个包中,里面有非常多的方法涵盖了文件操作的所有场景,不过因为我平时开发过程中需要直接操作文件的场景其实并不多,在加上Go标准库的文档太难搜索,每 ...
- php文件读写用什么函数,php中常用文件操作读写函数介绍_PHP教程
本文章介绍了下面几个常用的文件操作函数 file_get_contents 读取整个文件内容 fopen 创建和打开文件 fclose 关闭文件 fgets 读取文件一行内容 file_exists ...
- linux c文件操作,C语言文件操作(FILE)与常用文件操作函数
文件 1.文件基本概念 C程序把文件分为ASCII文件和二进制文件,ASCII文件又称文本文件,二进制文件和文本文件(也称ASCII码文件)二进制文件中,数值型数据是以二进制形式存储的, 而在文本文件 ...
- 文件操作(FILE)与常用文件操作函数——C语言
文件 1.文件基本概念 C程序把文件分为ASCII文件和二进制文件,ASCII文件又称文本文件,二进制文件和文本文件(也称ASCII码文件)二进制文件中,数值型数据是以二进制形式存储的, 而在文本文件 ...
最新文章
- 2018.08.10 atcoder Median Sum(01背包)
- 简明Linux命令行笔记:sort
- python推荐哪个系统好_什么是好的推荐系统?
- WMS Schema
- php怎么弄自动填充,ThinkPHP 自动填充(自动完成)详解及实例
- python index函数时间复杂度_如何确定Python中递归循环的时间复杂度?
- highcharts图表高级入门之polar:极地图的基本配置以及一些关键配置说明
- matlab迭代次数,怎么知道程序中的迭代次数呢
- leetcode 110 --- 判断给定的二叉树是否是平衡二叉树
- 开发者70行代码破解苹果OSX远程锁定安全功能
- lda 协方差矩阵_数据降维算法总结(LDAamp;PCA)
- win10 物理按键映射、快捷键修改
- Android开发视频教程,最全面的,总共200多集
- docker批量导出导入本地镜像
- 解决 pq: SSL is not enabled on the server
- 搜狗拼音输入法自定义格式的时间和日期并快捷键触发
- 库存流水账计算结余数量
- IDEA——问题汇总
- MFC应用中添加背景音乐,及音乐下载
- CSS盒子模型居中方法,web前端开发教程视频
热门文章
- LeetCode448-找到所有数组中消失的数字(原地数组)
- SVG 与 HTML5 的 canvas 相比较:
- mysql 的 distinct 去掉重复的数据
- maven添加sqlserver的jdbc驱动包
- (转)Android--sharepreference总结
- Linux系统资源控制
- EMS1.0.0项目的敏捷实践
- 更换高端游戏计算机故障电源,加内存条后电脑重启的解决办法游戏设备故障解决分享!...
- 跟踪 linux 内核调用_Linux用户和内核空间中的动态跟踪
- 讲故事形式解释什么是股票_讲故事的人可以教公开领导者什么