|
- //遍历文件
- BOOL EnumFile(TCHAR* lpszPath, TCHAR* lpszType)
- {
- size_t lpsz_path_len;
- size_t lpsz_type_len;
- if (STRSAFE_E_INVALID_PARAMETER == StringCchLength(lpszPath, MAX_PATH, &lpsz_path_len) ||
- STRSAFE_E_INVALID_PARAMETER == StringCchLength(lpszType, MAX_PATH, &lpsz_type_len)
- )
- {
- return FALSE;
- }//判断非NULL
-
-
- if (CString(lpszPath).Trim().IsEmpty() || CString(lpszType).Trim().IsEmpty())
- {
- return FALSE;
- } //判断非BLANK
- if (lpsz_path_len + lpsz_type_len > MAX_PATH)
- {
- return FALSE;
- } //字符串拼接校验
- HANDLE hFileFind;
- TCHAR szPath[MAX_PATH] = { 0 };
- _stprintf(szPath, _T("%s\\%s"), lpszPath, lpszType);
- WIN32_FIND_DATA lpFindFileData;
- hFileFind = FindFirstFile(szPath,&lpFindFileData);
-
- if (hFileFind == INVALID_HANDLE_VALUE)
- return FALSE; //用户输入的目录找不到文件
- do{
- if (lpFindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) //文件夹
- {
- if(
- !_tcscmp(lpFindFileData.cFileName, _T(".")) ||
- !_tcscmp(lpFindFileData.cFileName,_T(".."))
- )
- {
- continue;
- }
- std::cout << "文件夹:";
- }
- else
- {
- if (lpFindFileData.dwFileAttributes & FILE_ATTRIBUTE_READONLY) //只读文件
- {
- std::cout << "只读文件:";
- }
- else if (lpFindFileData.dwFileAttributes & FILE_ATTRIBUTE_ENCRYPTED) //加密文件
- {
- std::cout << "加密文件:";
- }
- else if (lpFindFileData.dwFileAttributes & FILE_ATTRIBUTE_TEMPORARY) //临时文件
- {
- std::cout << "临时文件:";
- }
- else //文件
- {
- cout << "文件:";
- }
- }
- std::wcout << lpFindFileData.cFileName << endl;
- } while (FindNextFile(hFileFind,&lpFindFileData));
- }
- int _tmain(int argc,TCHAR* argv)
- {
- TCHAR ugii_root_dir_path[MAX_PATH] = {0};
- GetEnvironmentVariable(_T("UGII_ROOT_DIR"), ugii_root_dir_path,MAX_PATH);
- //读取UGII_ROOT_DIR 目录下的全部的dll文件
- EnumFile(ugii_root_dir_path,_T("*.*"));
- return 0;
- }
复制代码 |
上一篇: vs2008,修改代码重新编译不生效?下一篇: 复杂的宽窄字节数据类型
|