文件及文件路径相关操作

来源:互联网 发布:java 多个泛型 编辑:程序博客网 时间:2024/06/05 04:15

1.获取执行目录

void GetExepath(TCHAR *pPath, int nSize)  //获取执行目录{TCHAR exePath[MAX_PATH];::memset(exePath, 0, sizeof(TCHAR)*MAX_PATH);::GetModuleFileName(NULL,exePath,MAX_PATH);TCHAR* pEnd = _tcsrchr(exePath,_T('\\'));*(pEnd+1) = NULL;if ( pPath  !=  NULL ){_tcscpy_s(pPath,nSize,exePath);}}

2.创建文件夹

CString CreateExcelFolder(CString& strExcelTime)    //创建Excel表的文件夹,并返回指定要保存Excel表的绝对路径{CString strExcelPath;CString strExcelRootFolder;    //Excel表根目录绝对路径CString strExcelChildFolder;   //Excel表子目录绝对路径CString strModelExcelPath;     //模板Excel表的绝对路径, 用于新建Excel表时strExcelRootFolder.Format(_T("D:\\Log_Excel"));if(!PathFileExists(strExcelRootFolder))    //如果文件夹不存在{  CreateDirectory(strExcelRootFolder, NULL);  }SYSTEMTIME SysTime;GetLocalTime(&SysTime);strExcelChildFolder.Format(_T("%s\\%.4d-%.2d"), strExcelRootFolder, SysTime.wYear, SysTime.wMonth);if(!PathFileExists(strExcelChildFolder))    //如果文件夹不存在{  CreateDirectory(strExcelChildFolder, NULL);  }strExcelTime.Format(_T("%.4d-%.2d-%.2d"), SysTime.wYear, SysTime.wMonth, SysTime.wDay);strExcelPath.Format(_T("%s\\%s.xls"), strExcelChildFolder, strExcelTime);return strExcelPath;}

3.复制文件后删除文件

BOOL CMarkNormalDlg::CopyAndDel(LPCTSTR lpExistingFileName, LPCTSTR lpNewFileName){if (CopyFile(lpExistingFileName, lpNewFileName, FALSE)){if (!DeleteFile(lpExistingFileName)){SetFileAttributes(lpExistingFileName, FILE_ATTRIBUTE_NORMAL);return DeleteFile(lpExistingFileName);}return TRUE;}return FALSE;}

4.查找文件

void FindFile(CString strPath){CString strtemp;if(strPath.Right(1)!="\\")strtemp.Format("%s\\*.*",strPath);elsestrtemp.Format("%s*.*",strPath);CFileFind findfile;BOOL bfind=findfile.FindFile(strtemp);while(bfind){bfind=findfile.FindNextFile();if(strfilename==findfile.GetFileName()){m_filelist.AddString(findfile.GetFilePath());}if(findfile.IsDirectory()&&!findfile.IsDots()){FindFile(findfile.GetFilePath());}if(//退出条件bstop)return;}}

5.删除文件夹

void DelFolder(CString path){CFileFind file;if(path.Right(1) != "\\")path +="\\*.*";BOOL bf;bf = file.FindFile(path);while(bf){bf = file.FindNextFile();//是文件时直接删除if (!file.IsDots() && !file.IsDirectory())DeleteFile(file.GetFilePath());else if (file.IsDots())continue;else if (file.IsDirectory()){path = file.GetFilePath();//是目录时,继续递归调用函数删除该目录下的文件DelFolder(path);//目录为空后删除目录RemoveDirectory(path);}}}

6.判断文件是否存在

BOOL IsFileExist(const CString& strFilePath){DWORD attr=::GetFileAttributes(strFilePath);if( INVALID_FILE_ATTRIBUTES==attr || (FILE_ATTRIBUTE_ARCHIVE&attr)!=FILE_ATTRIBUTE_ARCHIVE || (FILE_ATTRIBUTE_DIRECTORY&attr)==FILE_ATTRIBUTE_DIRECTORY )return FALSE;return TRUE;}
 
原创粉丝点击