首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

linux 创建多级目录有关问题 求解

2012-03-13 
linux 创建多级目录问题 求解mnt/fghs/file/file/file有这样一个目录前2个目录存在后面几个不存在这样怎么

linux 创建多级目录问题 求解
mnt/fghs/file/file/file
  有这样一个目录前2个目录存在 后面几个不存在 
  这样怎么创建目录呢? 想了很久纠结

  不是文件当前目录,而是在根目录下开始创建

[解决办法]
char *strDirPath="D:/test/test1/test2/test.txt";
if (strlen(strDirPath)>MAX_PATH)
{
return;
}
int ipathLength=strlen(strDirPath);
int ileaveLength=0;
int iCreatedLength=0;
char szPathTemp[MAX_PATH]={0};
for (int i=0;(NULL!=strchr(strDirPath+iCreatedLength,'\\'));i++)
{
ileaveLength=strlen(strchr(strDirPath+iCreatedLength,'\\'))-1;
iCreatedLength=ipathLength-ileaveLength;
strncpy(szPathTemp,strDirPath,iCreatedLength);
mkdir(szPathTemp);
}
if (iCreatedLength<ipathLength)
{
mkdir(strDirPath);
}
[解决办法]
http://topic.csdn.net/u/20111207/13/f61a7602-1b7f-4f97-9bc7-ed19cd1b63d1.html
[解决办法]
mnt/fghs/file/file/file
正则分解'/'arrDir;

C/C++ code
string strDir="";for(int i=0;i<count(arrDir)-1;i++){ strDir += arrDir[i]; if(!is_dir(strDir))   mkdir(strDir);}
[解决办法]
看来咋效率太低了,我一般都是一步一步的创建,mark 学习!
[解决办法]
//0-成功, -1-失败
static int XSystem(char * cmd,...)
{
char cmd_buf[128];
memset(cmd_buf,'\0',128);
va_list arg;
va_start (arg, cmd);
vsnprintf (cmd_buf,128, cmd, arg);
va_end (arg);

FILE *stream = NULL; 
char buf[1024];
memset(buf, '\0', sizeof(buf)); 
stream = popen( cmd_buf, "r" ); 
int len = fread( buf, sizeof(char), sizeof(buf), stream);
pclose(stream); 
if (len != 0)
{
return -1;
}
return 0;
}

#define REC_PATH "/mnt/video" //录像数据保存目录
sprintf(path,"%s/%d/%d/%d",REC_PATH,1900+ptm->tm_year,1+ptm->tm_mon,ptm->tm_mday);
sprintf(cmd,"mkdir -p %s",path);
XSystem(cmd);

热点排行