自动创建文件夹的两种方法
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); //创建文件夹
}