1. 程式人生 > >VC++ 判斷資料夾是否存在,若不存在,建立新資料夾

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;
 }
 

}