您的位置:首页 > 其它

判断文件夹是否存在,及创建一个文件夹

2013-07-04 08:58 218 查看


#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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: