技术无极限

常用链接

统计

最新评论

20090622学习心得:创建多级目录

今天试着写了一个创建多级目录的函数,用C语言实现。
涉及的库函数如下:
strcpy
strchr
_access
_mkdir
这些函数的具体使用方法参考msdn :),这里不再一一列出。

今天(20090623)有做了点更改,支持网络路径的创建。当然要先保证能对网络目录具有读写权限才可以:)

// 头文件
#include <io.h>
#include 
<direct.h>

//==================================================================
//函数名: CreateMultiLevelDirectory
//作者:  xinxin
//日期:  2009-06-21
//功能:  创建多级目录
//输入参数:保存多级目录的字符串
//返回值: TRUE:创建成功; FALSE:失败.
//==================================================================
BOOL CreateMultiLevelDirectory(const char *strFilePathName)
{
    
char strFilePath[260];
    
char strTemp[260];
    
char *s, *p;

    strcpy(strFilePath, strFilePathName);
    
    s 
= strFilePath;
   
    // if strFilePathName is network path, skip the ip address/host name
    // Modified on 20090623

     if(0 == strncmp(s, "\\\\", 2))
    {
        s += 2;
        s = strchr(s, '\\');
         if(!s)
        {
            return (FALSE);
        }
        else
        {
            s += 1;
        }
    }

    
do
    {
        p 
= strchr(s, '\\');
        
if(p)
        {
            
*= '\0';
        }
        s 
= strFilePath;

        
// directory doesn't exist
        if(-1 == _access(s, 0))
        {
            
// failed to create directory.
            if(-1 == _mkdir(s))
            {
                
return (FALSE);
            }
        }

        
if(p)
        {
            
*= '\\';
            s 
= p + 1;
        }
    } 
while(p);

    
return (TRUE);
}

posted on 2009-06-22 23:40 勇敢空心人 阅读(2141) 评论(5)  编辑 收藏 引用

评论

# re: 20090622学习心得:创建多级目录 2009-06-23 08:34 kitco

楼主真是厉害,找了好久了
谢谢↑  回复  更多评论   

# re: 20090622学习心得:创建多级目录 2009-06-23 19:06 勇敢空心人

呵呵,我也是用到了才学习的  回复  更多评论   

# re: 20090622学习心得:创建多级目录 2009-06-24 18:24 null

既然在windows平台上,为什么不用API,而用win的posix?中间又多了一层调用。  回复  更多评论   

# re: 20090622学习心得:创建多级目录[未登录] 2009-06-26 19:00 橙子

SHCreateDirectory  回复  更多评论   

# re: 20090622学习心得:创建多级目录 2011-12-07 10:42 勇敢空心人

我今天回来看看,不写代码好久,自己都忘了还有这些东东,唉,时间啊,  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理