打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
获取文件扩展名、 文件名、文件名不包括扩展名,检测文件夹、文件是否存在、创建文件夹,检测文件夹状态、检查文件名是否符合要求
[c-sharp] view plaincopy
  1. /// 获取文件正确路径,如果是文件夹,就加上  
  2. BOOL CCommonTool::GetFileFullDirectoryPath( CString &szPath )  
  3. {  
  4.     DWORD dwAttibute;  
  5.     dwAttibute= GetFileAttributes( szPath );  
  6.     if ( dwAttibute!=0xFFFFFFFF )  
  7.     {  
  8.         if ( (dwAttibute&FILE_ATTRIBUTE_DIRECTORY) !=0 )  
  9.         {  
  10.             if ( szPath.Right(1)!='//' )  
  11.             {  
  12.                 szPath+="//";  
  13.             }  
  14.             return TRUE;  
  15.         }  
  16.     }  
  17.     return FALSE;  
  18. }  
  19.   
  20.   
  21. /// 检测文件夹是否存在  
  22. BOOL CCommonTool::DirectoryExists(LPCTSTR lpszFileName) const  
  23. {  
  24.     DWORD dwAttributes = GetFileAttributes(lpszFileName);  
  25.     if(dwAttributes == 0xFFFFFFFF)  
  26.     {  
  27.         return false;  
  28.     }   
  29.     if((dwAttributes & FILE_ATTRIBUTE_DIRECTORY) == FILE_ATTRIBUTE_DIRECTORY)  
  30.     {  
  31.         return TRUE;  
  32.     }  
  33.     else  
  34.     {  
  35.         return FALSE;  
  36.     }  
  37. }  
  38.   
  39. /// 检测文件是否存在,包括文件与文件夹  
  40. BOOL CCommonTool::FileExists(LPCTSTR lpszFileName)  
  41. {  
  42.     DWORD dwAttributes = GetFileAttributes(lpszFileName);  
  43.     if(dwAttributes == 0xFFFFFFFF)  
  44.     {  
  45.         return false;  
  46.     }   
  47.   
  48.     return TRUE;  
  49. }  
  50.   
  51. /// 获取我的电脑路径  
  52. CString CCommonTool::GetSystemPath( int nAttribute /* =CSIDL_DESKTOP */ )  const  
  53. {  
  54.     CString csSystemPath=_T("");  
  55.     TCHAR szPath[MAX_PATH+1]=_T("");  
  56.  
  57. #ifdef  _WIN32_WCE  
  58.     LPITEMIDLIST ppidl=NULL;  
  59. #else  
  60.     LPITEMIDLIST  ppidl=NULL;  
  61. #endif  
  62.     if ( SHGetSpecialFolderLocation( NULL, nAttribute, &ppidl )==S_OK )   
  63.     {  
  64.         if ( SHGetPathFromIDList(ppidl, szPath ))  
  65.         {  
  66.             csSystemPath= szPath;  
  67.         }  
  68.     }  
  69.     return csSystemPath;  
  70. }  
  71.   
  72.   
  73. /* 按照指定的文件夹名顺序创建文件夹 
  74.     szFileName: 如果文件已经存在,按照 szFileName(1)顺序创建 
  75. */  
  76. bool CCommonTool::CreateDirectory( CString &szFileName )  
  77. {  
  78.     int nIndex=1;  
  79.     CString szTemp= szFileName;  
  80.     do   
  81.     {  
  82.         if ( DirectoryExists(szTemp) )  
  83.         {  
  84.             szTemp.Format(_T("%s(%d)"), szFileName, nIndex++);  
  85.             continue;  
  86.         }  
  87. #ifdef _WIN32_WCE  
  88.         // 根目录创建时不要加'/'  
  89.         if ( szTemp.ReverseFind(_T('//'))==0 )  
  90.         {  
  91.             szTemp= szTemp.Mid(1);  
  92.         }  
  93. #endif  
  94.         szFileName= szTemp;  
  95.         return ( ::CreateDirectory(szFileName,NULL)>0 );  
  96.   
  97.     } while ( nIndex<1000 );  
  98.   
  99.     return false;  
  100. }  
  101.   
  102. /// 检查文件夹操作状态  
  103. bool CCommonTool::InspectDirectoryPopedom( const CString szPath, DWORD dwFileAccess/* =GENERIC_READ|GENERIC_WRITE */ )  
  104. {  
  105. #ifdef _WINDOWS_  
  106.     // wince下不支持  
  107.     HANDLE hDir=CreateFile(szPath, dwFileAccess, FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE,   
  108.            NULL, OPEN_EXISTING,  FILE_FLAG_BACKUP_SEMANTICS, NULL );  
  109.     if ( hDir==INVALID_HANDLE_VALUE )  
  110.     {  
  111.         return false;  
  112.     }  
  113.     CloseHandle(hDir);  
  114. #endif  
  115.     return true;  
  116. }  
  117.   
  118. /// 检查文件名是否符合要求  
  119. bool CCommonTool::InspectFileNameRule(const CString &csFileName)  
  120. {  
  121.     // 文件名禁用字符列表  
  122.     TCHAR szFILERULE[]= { '//''/'':''*''?''/"''<''>''|''/0'};  
  123.   
  124.     for( DWORD i=0; i<STRLEN(szFILERULE); i++ )  
  125.     {  
  126.         if ( csFileName.Find( szFILERULE[i])>=0 )  
  127.         {  
  128.             return false;  
  129.         }  
  130.     }  
  131.     return true;  

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
图解让电脑显示完整的文件名和扩展名
缩略图时为什么不显示文件名以及如何显示文件后缀名?
Excel快速提取文件夹中的所有文件名,小白也能轻松统计
什么是文件的后缀名?如果得知文件的后缀?
关于电脑的一些基本常识和操作
什么是计算机的文件?
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服