怎样一次创建一个多级目录(50分哦)

gateh 2000-09-07 09:34:00
各位高手:
怎样才能一次创建一个多级目录呢?
举例:
比如我要创建一个目录c:\temp\temp\tmep\temp
其中已经有了c:\temp或者没有,有没有办法调用一个函数来进行一次性创建
创建或者类似的类控件.

如果有控件,希望实现下面这种效果:
各位高手肯定见过各式各样的安装程序,其中你在选择安装目录的时候,安
装软件允许你输入一个,如果没有,它将替你创建!

谢谢了!

小弟在此再次感谢了!thanks



...全文
390 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
noname3 2000-09-09
  • 打赏
  • 举报
回复
原来如些,我说我的硬盘上怎么有好多的这个文件呢.
gateh 2000-09-09
  • 打赏
  • 举报
回复
谢谢各位,小弟回去试一试,再看看能否给你分哦!
谢谢
蒋晟 2000-09-08
  • 打赏
  • 举报
回复
可以用SHFileOperation拷贝一个文件(微软喜欢用一个0字节的MSCREATE.DIR)到目标目录,文件系统会自动建立多级目录。
oldworm 2000-09-08
  • 打赏
  • 举报
回复
下面的方法简单:
char DirName[_MAX_PATH];
int i;
strcpy(DirName, (LPCTSTR)strDefaultPath);
int len=strlen(DirName);
for(i=0;i<len;i++)
{
if(DirName[i]=='\\')
{
DirName[i] = 0;
mkdir(DirName);
DirName[i] = '\\';
}
}
if(len>0)
{
mkdir(DirName);
}
U皮特U 2000-09-07
  • 打赏
  • 举报
回复
源码如下,调用方式 WriteDirectory( strPath); 参数为要创建的目录全路径名,最后没有"\"。
详细说明参见:http://go18.163.com/~freecode/vc/sharecode/source/WriteDir.html

#include "stdafx.h"

BOOL WriteDirectory(CString dd)
{
HANDLE fFile;
WIN32_FIND_DATA fileinfo;
CStringArray m_arr;
BOOL tt;
int x1 = 0;
CString tem = "";


fFile = FindFirstFile(dd,&fileinfo);

// if the file exists and it is a directory
if(fileinfo.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY)
{
// Directory Exists close file and return
FindClose(fFile);
return TRUE;
}
m_arr.RemoveAll();
for(x1 = 0; x1 < dd.GetLength(); x1++ )
{
if(dd.GetAt(x1) != '\\')
tem += dd.GetAt(x1);
else
{
m_arr.Add(tem);
tem += "\\";
}
if(x1 == dd.GetLength()-1)
m_arr.Add(tem);
}


// Close the file
FindClose(fFile);


// Now lets cycle through the String Array and create each directory in turn
for(x1 = 1; x1 < m_arr.GetSize(); x1++)
{
tem = m_arr.GetAt(x1);
tt = CreateDirectory(tem,NULL);

// If the Directory exists it will return a false
if(tt)
SetFileAttributes(tem,FILE_ATTRIBUTE_NORMAL);
// If we were successful we set the attributes to normal
}
// Now lets see if the directory was successfully created
fFile = FindFirstFile(dd,&fileinfo);

m_arr.RemoveAll();
if(fileinfo.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY)
{
// Directory Exists close file and return
FindClose(fFile);
return TRUE;
}
else
{
// For Some reason the Function Failed Return FALSE
FindClose(fFile);
return FALSE;
}
}


16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧