- /// 獲取文件正確路徑,如果是文件夾,,就加上
- BOOL CCommonTool::GetFileFullDirectoryPath( CString &szPath )
- {
- DWORD dwAttibute;
- dwAttibute= GetFileAttributes( szPath );
- if ( dwAttibute!=0xFFFFFFFF )
- {
- if ( (dwAttibute&FILE_ATTRIBUTE_DIRECTORY) !=0 )
- {
- if ( szPath.Right(1)!='//' )
- {
- szPath+="http://";
- }
- return TRUE;
- }
- }
- return FALSE;
- }
-
-
- /// 檢測文件夾是否存在
- BOOL CCommonTool::DirectoryExists(LPCTSTR lpszFileName) const
- {
- DWORD dwAttributes = GetFileAttributes(lpszFileName);
- if(dwAttributes == 0xFFFFFFFF)
- {
- return false;
- }
- if((dwAttributes & FILE_ATTRIBUTE_DIRECTORY) == FILE_ATTRIBUTE_DIRECTORY)
- {
- return TRUE;
- }
- else
- {
- return FALSE;
- }
- }
-
- /// 檢測文件是否存在,包括文件與文件夾
- BOOL CCommonTool::FileExists(LPCTSTR lpszFileName)
- {
- DWORD dwAttributes = GetFileAttributes(lpszFileName);
- if(dwAttributes == 0xFFFFFFFF)
- {
- return false;
- }
-
- return TRUE;
- }
-
- /// 獲取我的電腦路徑
- CString CCommonTool::GetSystemPath( int nAttribute /* =CSIDL_DESKTOP */ ) const
- {
- CString csSystemPath=_T("");
- TCHAR szPath[MAX_PATH+1]=_T("");
-
- #ifdef _WIN32_WCE
- LPITEMIDLIST ppidl=NULL;
- #else
- LPITEMIDLIST ppidl=NULL;
- #endif
- if ( SHGetSpecialFolderLocation( NULL, nAttribute, &ppidl )==S_OK )
- {
- if ( SHGetPathFromIDList(ppidl, szPath ))
- {
- csSystemPath= szPath;
- }
- }
- return csSystemPath;
- }
-
-
- /* 按照指定的文件夾名順序創(chuàng)建文件夾
- szFileName: 如果文件已經(jīng)存在,按照 szFileName(1)順序創(chuàng)建
- */
- bool CCommonTool::CreateDirectory( CString &szFileName )
- {
- int nIndex=1;
- CString szTemp= szFileName;
- do
- {
- if ( DirectoryExists(szTemp) )
- {
- szTemp.Format(_T("%s(%d)"), szFileName, nIndex++);
- continue;
- }
- #ifdef _WIN32_WCE
- // 根目錄創(chuàng)建時不要加'/'
- if ( szTemp.ReverseFind(_T('//'))==0 )
- {
- szTemp= szTemp.Mid(1);
- }
- #endif
- szFileName= szTemp;
- return ( ::CreateDirectory(szFileName,NULL)>0 );
-
- } while ( nIndex<1000 );
-
- return false;
- }
-
- /// 檢查文件夾操作狀態(tài)
- bool CCommonTool::InspectDirectoryPopedom( const CString szPath, DWORD dwFileAccess/* =GENERIC_READ|GENERIC_WRITE */ )
- {
- #ifdef _WINDOWS_
- // wince下不支持
- HANDLE hDir=CreateFile(szPath, dwFileAccess, FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE,
- NULL, OPEN_EXISTING, FILE_FLAG_BACKUP_SEMANTICS, NULL );
- if ( hDir==INVALID_HANDLE_VALUE )
- {
- return false;
- }
- CloseHandle(hDir);
- #endif
- return true;
- }
-
- /// 檢查文件名是否符合要求
- bool CCommonTool::InspectFileNameRule(const CString &csFileName)
- {
- // 文件名禁用字符列表
- TCHAR szFILERULE[]= { '//', '/', ':', '*', '?', '/"', '<', '>', '|', '/0'};
-
- for( DWORD i=0; i<STRLEN(szFILERULE); i++ )
- {
- if ( csFileName.Find( szFILERULE[i])>=0 )
- {
- return false;
- }
- }
- return true;
- }
|