自动创建文件夹的两种方法

时间:2024-03-11 19:23:40

自动创建文件夹的两种方法

1、CreateDictionary()

CreateDirectory(myPath, 0); //在临时文件夹中创建本应用的文件夹

原型为:BOOL WINAPI CreateDirectory(__in  LPCTSTR lpPathName, __in LPSECURITY_ATTRIBUTES lpSecurityAttributes);

其中lpPathName是要创建的目录的路径,第2个涉及安全性问题 传NULL就好了

例如:

char path[MAX_PATH] = "";
GetTempPath(MAX_PATH, path);//将本机的临时目录的路径找到并存于字符数组path中,MAX_PATH表示字符数组最大长度
CString myPath = path + CString("ProcessAssistantFile\\");//在路径后加上新建文件夹的名字
CreateDirectory(myPath, 0); //在临时文件夹中创建本应用的文件夹

 

_mkdir 建立一个新的子目录

需要注意的是 windows下的_mkdir()只需要一个路径的参数,原型:int _mkdir(const char* dirname);

eg1:

inline void createFolder(const char* folder)
{
    _mkdir(folder);
}

 


 

eg2:用系统命令的方式,即system(),在头文件stdio.h中

#include <iostream>
#include <string>
#include <cstdlib>
using namespace std;

int main()
{
    int counter = 0;
    while(1)
    {
        string stringdir = " ABCDEF "+counter ;
        system(("mkdir "+stringdir).c_str() ); //c_str()将string类型转char*类型,getBuffer()把Cstring类型转char*类型
        counter++;
    }
}

 

而linux下的mkdir()需要两个参数,第一个是路径,第二个是权限

int mkdir(const char* path,mode_t mode);

#include <sys/types.h>
#include <sys/stat.h>

... int status; ... status = mkdir("/home/cnd/mod1", S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);

 

也可以用系统命令的方式,即system(),在头文件stdio.h中

void createFolder(const char* folder)
{
    char str[128];
    sprintf(str, "mkdir %s", folder); //folder为传入的待新建的文件夹名,sprintf可连接语句
     system(str);   //创建文件夹
}