- #include<iostream>
- #include<windows.h>
- #include <string.h>
- using namespace std;
- //判断一个文件夹是否存在,如果不存在则创建这个文件夹
- bool DirExist(const TCHAR *pszDirName)
- {
- WIN32_FIND_DATA fileinfo;
- TCHAR _szDir[_MAX_PATH];
- strcpy(_szDir,pszDirName);
- int nLen = strlen(_szDir);
- if((_szDir[nLen-1] == '//') || (_szDir[nLen-1] == '/'))
- {
- _szDir[nLen-1] =(char) '/0';//zx
- }
- HANDLE hFind = ::FindFirstFile(_szDir,&fileinfo);
- if(hFind == INVALID_HANDLE_VALUE)
- {
- return false;
- }
- if(fileinfo.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY)
- {
- ::FindClose(hFind);
- return true;
- }
- ::FindClose(hFind);
- return false;
- }
- bool CreateDir(const TCHAR *pszDirName)
- {
- bool bRet = false;
- TCHAR _szDir[_MAX_PATH];
- TCHAR _szTmp[_MAX_DIR];
- int nLen = 0;
- int idx;
- if((DirExist(pszDirName)) == true)
- return true;
- strcpy(_szDir,pszDirName);
- nLen = strlen(_szDir);
- if(_szDir[nLen-1] == '//' || _szDir[nLen-1] == '/')
- {
- _szDir[nLen-1] = (char)'/0'; //zx
- }
- nLen = strlen(_szDir);
- memset(_szTmp,0,_MAX_DIR);
- TCHAR _str[2];
- for(idx = 0;idx < nLen;idx++)
- {
- if(_szDir[idx] != '//')
- {
- _str[0] = _szDir[idx];
- _str[1] = 0;
- strcat(_szTmp,_str);
- }
- else
- {
- bRet = ::CreateDirectory(_szTmp,NULL);
- if(bRet)
- {
- ::SetFileAttributes(_szTmp,FILE_ATTRIBUTE_NORMAL);
- }
- _str[0] = _szDir[idx];
- _str[1] = 0;
- strcat(_szTmp,_str);
- }
- if(idx == nLen-1)
- {
- bRet = ::CreateDirectory(_szTmp,NULL);
- if(bRet)
- {
- ::SetFileAttributes(_szTmp,FILE_ATTRIBUTE_NORMAL);
- }
- }
- }
- if(DirExist(_szTmp))
- return true;
- return false;
- }
- int main()
- {
- char Dir[]="F:\\123";
- if(false==DirExist("Dir"))//查看F盘下是否存在名为123的文件夹
- {
- cout<<"not find!"<<endl;
- if(true==CreateDir(Dir))//创建123文件夹
- cout<<"Create success!"<<endl;
- else
- cout<<"create failed!"<<endl;
- }
- else
- cout<<"Find it !"<<endl;
- system("pause");
- return 0;
- }
判断文件夹是否存在,及创建一个文件夹
最新推荐文章于 2023-07-04 09:44:02 发布