文章类型: VC&C++
关键词: 判断目录是否存在
内容摘要: 判断目录是否存在

判断目录是否存在

2016/11/22 11:06:24    来源:apple    阅读:

VC判断路径是否存在

 

方法一:

 

CFileFind m_FileFind;

CString m_sFilePath = "D://Program Files//Adobe//Adobe Flash CS3";

if(!m_FileFind.FindFile(m_sFilePath))  //路径不存在则创建该路径

{

      CreateDirectory(m_sFilePath,NULL);

}

 

方法二:

 

CString   strFilePath; 

strFilePath   =   "E://图像//";

strFilePath   +=   m_ID; 

if   (!SetCurrentDirectory(strFilePath))   

{

     CreateDirectory(strFilePath, NULL); 

 

方法三:

 

FindFirstFile()/

#define _WIN32_WINNT 0x0400


#include "windows.h"


int

main(int argc, char *argv[])

{

  WIN32_FIND_DATA FindFileData;

  HANDLE hFind;


  printf ("Target file is %s./n", argv[1]);


  hFind = FindFirstFile(argv[1], &FindFileData);


  if (hFind == INVALID_HANDLE_VALUE) {

    printf ("Invalid File Handle. Get Last Error reports %d/n", GetLastError ());

  } else {

    printf ("The first file found is %s/n", FindFileData.cFileName);

    FindClose(hFind);

  }


  return (0);

}

 

方法四:

 

FILE *fp = fopen(strPath, "r")


if(fp == NULL)

{

//没有同名文件

}

 

方法五:

 

 

  CString   strPath;   

  strPath   =   "c://abc.dat"   

  if(GetFileAttributes(strPath)   ==   0xFFFFFFFF)   

  {   

  AfxMessageBox("文件不存在");   

  return;   

  }  

 

。。。。。。。。。。

 

程序如下:   

  CString   filePath   =   "C://abc//";   

  DWORD   dwAttr   =   GetFileAttributes(filePath);   

  if(dwAttr==-1||(dwAttr&FILE_ATTRIBUTE_DIRECTORY)==0)//目录不存在   

  {   

  if   (   !CreateDirectory(filePath,   NULL)   )   

  {   

  AfxMessageBox("不能创建目录");   

  return;   

  }   

  }  


方法六:

 

  WIN32_FIND_DATA   tFile;   

  memset(&tFile,   0,   sizeof(tFile));   

  CString   str   =   "d:/eeagadg/...";   

  if(FindFirstFile(str,   &tFile)   ==   INVALID_HANDLE_..)   

          不存在

 

方法七:

 

  int   _access(     

        const   char   *path,     

        int   mode     

  );  

 

。。。。。。。。

  #include   <io.h>   

  .....   

  char   szPathName[MAX_PATH]   =   "C://ABC";   

  if(_access(szPathName,0)   ==   0)   

        MessageBox(NULL,"该文件夹已经存在","提示",0)   

  else   

    CreateDirectory(szPathName,NULL);

 

——————————————————————————————————————

—————————————————————————————————————— 

 

我在MFC程序中 用的是方法一:

 

 CString file;

 CFileFind fileFind;

 

 file=_T("D://T1//T2");

 

   if (!fileFind.FindFile(file))

   {

   CreateDirectory(file,NULL);

   }

 

因为用其他方法时,可能要加额外的头文件 所以选择了这一个

 

 

参考资料:

 

http://www.cnblogs.com/zhangpengshou/archive/2009/07/19/1526487.html

 

http://zhidao.baidu.com/question/56430388.html

 

http://wenda.tianya.cn/wenda/thread?tid=1235e6ad4211d93f

 

http://topic.okbase.net/200704/2007040617/2954104.html

 

http://hi.baidu.com/chinapegasus/blog/item/929e68829bd43795f703a601.html

 

http://topic.csdn.net/t/20040618/13/3103573.html

 

http://blog.csdn.net/yuvmen/archive/2009/09/10/4540461.aspx

 

http://topic.csdn.net/t/20030912/11/2251864.html

↑ 上一篇文章:VC++中的CString、char、int类型转换 关键词:VC++中的CString、char、int类型转换 发布日期:2016/11/17 10:17:38
↓ 下一篇文章:C++字符串格式化 sprintf、printf 关键词:C++字符串格式化,sprintf、printf 发布日期:2016/11/22 12:06:07
相关目录:.NETVC&C++软件开发
我要评论
正在加载评论信息......