精华内容
下载资源
问答
  • 一、判断文件夹是否存在:  1.用CreateDirectory(".//FileManege",NULL);如果文件夹FileManege不存在,则创建。  2.或者if(_access(".//FileManege",0)==-1),表示FileManege不存在。  3.或者BOOL ...

    一、判断文件夹是否存在:
         1.用CreateDirectory(".//FileManege",NULL);如果文件夹FileManege不存在,则创建。
         2.或者if(_access(".//FileManege",0)==-1),表示FileManege不存在。
         3.或者BOOL PathIsDirectory(LPCTSTR pszPath);

    二、判断文件是否存在:
         1.用if((file=fopen(".//FileManege//F//F.dat","rb"))==NULL)
             file=fopen(".//FileManege//F//F.dat","ab+"); // 先判断有无文件,没的话新建一个
         2.用if(_access(".//FileManege//F//F.dat",0)==-1),表示文件不存在。


           函数int _access( const char *path, int mode );可以判断文件或者文件夹的mode属性
           mode=00;//Existence only
           mode=02;//Write permission
           mode=04;//Read permission
           mode=06;//Read and write permission
           需要包含头文件<io.h>。

    展开全文
  • Linux c++ 判断文件夹是否存在及创建文件夹判断文件夹是否存在创建文件夹 判断文件夹是否存在 #include <sys/stat.h> #include <unistd.h> #include <fstream> #include <string> #include ...

    Linux c++ 判断文件夹是否存在及创建文件夹

    判断文件夹是否存在

    #include <sys/stat.h>
    #include <unistd.h>
    #include <fstream>
    #include <string>
    #include <iostream>
    
    bool isFileExists_access(string& name) {
        return (access(name.c_str(), F_OK ) != -1 );
    }
    bool isFileExists_stat(string& name) {
      struct stat buffer;   
      return (stat(name.c_str(), &buffer) == 0); 
    }
    

    经过测试,isFileExists_stat耗时最短。

    参考:
    https://zhuanlan.zhihu.com/p/180501394

    创建文件夹

    #include <iostream>
    #include <string>
    #include <sys/stat.h>
    #include <errno.h>
    
    namespace light
    {
        int mkpath(std::string s, mode_t mode = 0755)
        {
            size_t pre = 0, pos;
            std::string dir;
            int mdret;
    
            if (s[s.size() - 1] != '/')
            {
                // force trailing / so we can handle everything in loop
                s += '/';
            }
    
            while ((pos = s.find_first_of('/', pre)) != std::string::npos)
            {
                dir = s.substr(0, pos++);
                pre = pos;
                if (dir.size() == 0)
                    continue; // if leading / first time is 0 length
                if ((mdret = ::mkdir(dir.c_str(), mode)) && errno != EEXIST)
                {
                    return mdret;
                }
            }
            return mdret;
        }
    }
    
    展开全文
  • c++ 判断文件夹是否存在

    千次阅读 2009-07-20 13:08:00
    (1)//目录是否存在的检查:bool CheckFolderExist(const string &strPath){ WIN32_FIND_DATA wfd; bool rValue = false; HANDLE hFind = FindFirstFile(strPath.c_str(), &wfd); if ((hFind != INVALID_HANDLE...

    (1)

    //目录是否存在的检查:
    bool CheckFolderExist(const string &strPath)
    {
        WIN32_FIND_DATA wfd;
        bool rValue = false;
        HANDLE hFind = FindFirstFile(strPath.c_str(), &wfd);
        if ((hFind != INVALID_HANDLE_VALUE) && (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
        {
            rValue = true;  
        }
        FindClose(hFind);
        return rValue;
    }

    (2)PathFileExists("yourfile") 但是使用时候需要 #include "Shlwapi.h"

     

    (3)

    bool FileExists(LPCTSTR lpszFileName, bool bIsDirCheck)
    {
    DWORD dwAttributes = GetFileAttributes(lpszFileName);
        if(dwAttributes == 0xFFFFFFFF)
    {
            return false;
    }

    if((dwAttributes & FILE_ATTRIBUTE_DIRECTORY) == FILE_ATTRIBUTE_DIRECTORY)
    {
       return bIsDirCheck;
    }
    else
    {
       return !bIsDirCheck;
    }
    }

    (4)使用boost的filesystem类库的exists函数

    #include <boost/filesystem/operations.hpp>
    #include <boost/filesystem/path.hpp>
    #include <boost/filesystem/convenience.hpp>

    int GetFilePath(std::string &strFilePath)
    {
        string strPath;
        int nRes = 0;

        //指定路径           
        strPath = "D:/myTest/Test1/Test2";
        namespace fs = boost::filesystem;

        //路径的可移植
        fs::path full_path( fs::initial_path() );
        full_path = fs::system_complete( fs::path(strPath, fs::native ) );
        //判断各级子目录是否存在,不存在则需要创建
        if ( !fs::exists( full_path ) )
        {
            // 创建多层子目录
            bool bRet = fs::create_directories(full_path);
            if (false == bRet)
            {
                return -1;
            }

        }
        strFilePath = full_path.native_directory_string();

        return 0;
    }

    展开全文
  • if (access(output_root.c_str(), 0) == -1) //如果文件夹存在 mkdir(output_root.c_str(), 0777);
     if (access(output_root.c_str(), 0) == -1)    //如果文件夹不存在
            mkdir(output_root.c_str(), 0777);
    
    展开全文
  • <io.h> 函数原型:int _access(const char *pathname, int mode); 参数:pathname 为文件路径或目录路径 mode 为访问权限(在不同系统中可能用不能的宏...备注:当pathname为文件时,_access函数判断文件是...
  • 转载自:...1.Windows下创建单个文件夹示例: #include &lt;io.h&gt; #include &lt;direct.h&gt; using namespace std; int main() { string dir = "./test"; if (...
  • 中的_access可以判断文件是否存在,<direct.h>中的_mkdir可以创建文件。 建单级目录: #include <io.h> #include <direct.h> #include <string> int main() { std::string prefix = ...
  • 在不同操作系统中创建文件夹所需要的头文件不太一样。 Windows中需要如下头文件: #include <direct.h> #include <io.h> Linux中需要如下头文件: #include <sys/io.h> #include <unistd.h>...
  • #####################################...判断文件夹是否存在: 在windows环境下头文件为: [cpp] view plain copy #include  在linux环境下头文件为: [cpp] view plain copy #
  • c++中没找到直接判断文件夹是否存在的函数,只好自己写一个。。 bool dir_file_exists(string dir, bool mkdir_flag) { char des_dir[255]; str2char(dir, des_dir); // 将string 写入到字符数组中 int state = ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 20,919
精华内容 8,367
关键字:

c++判断文件夹是否存在

c++ 订阅