VC++ 判斷資料夾是否存在,若不存在,建立新資料夾
1、使用#include <io.h> 中的_access函式_access(TempDir,0)==-1,引數0為檢測是否存在
#<io.h>
int _access( constchar*path,intmode);
返回值: 0表示允許訪問,-1表示禁止訪問
注意:不能使用 FILE *fp=fopen(dirName, "r+w");來判斷資料夾是否存在
可以判斷檔案是否存在,if(fp){//檔案存在}else{//檔案不存在}
mode value | |
---|---|
00 | 檢測是否存在 |
02 | 寫許可權 |
04 | 讀許可權 |
06 |
讀寫許可權 |
2、_makedir(TempDir) 需要在TempDir中加入"\",方可建立
3、
程式碼如下:
標頭檔案:FileOperater.h
#pragma once
class CFileOperater
{
public:
CFileOperater(void);
public:
~CFileOperater(void);
public:
bool CheckDir(const char * dirName);
};
//cpp檔案FileOperater.cpp
#include "StdAfx.h"
#include "FileOperater.h"
#include<stdio.h>
#include <direct.h>
#include <stdlib.h>
#include <io.h>
CFileOperater::CFileOperater(void)
{
}
CFileOperater::~CFileOperater(void)
{
}
bool CFileOperater::CheckDir(const char * dirName)
{
//FILE *fp = NULL;
char TempDir[200];
memset(TempDir,'\0',sizeof(TempDir));
sprintf(TempDir,dirName);
strcat(TempDir,"\\");
if (_access(TempDir,0)==-1)//資料夾不存在
{
if(_mkdir(TempDir)==0)//建立
{
return true;
}
else
{
return false;//can not make a dir;
}
}
else
{
return true;
}
}