`
zsxxsz
  • 浏览: 451904 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

创建多级目录

阅读更多

  在UNIX平台下有一个创建目录的API接口 mkdir(),该函数使用比较简单,但如果需要创建多级目录,则操作起来就稍微麻烦些,也有一些公开的代码实现了创建多级目录的功能,而很多都是采用递归调用 mkdir() 创建目录的方式。在 Postfix 代码也有一段代码用于创建多级目录,它的优点是迭代方式创建多级目录,而不是递归调用 mkdir(),于是乎ACL作者将其改造了一下(主要增加了针对WIN32的支持),加入ACL库中。接口比较简单,如下:

/**
 * 功能: 创建多级目录结构
 *  如创建 "/tmp/dir1/dir2" (for unix) 或 "C:\\test\\test1\\test2" (for win32)
 * @param path: 一级或多级目录路径
 * @param perms: 创建权限(如: 0755, 0777, 0644 ...)
 * @return == 0: OK;  == -1, Err
 */
ACL_API int acl_make_dirs(const char *path, int perms);

 

  该函数接口在UNIX、WIN32平台下完全一致,只是在WIN32平台下,其中的参数 perms 是无效的,此外,还有一个差别就是在WIN32平台下各级目录分隔符可以为 "/" 或 "\",而在UNIX平台下分隔符则只能为 "/"。

  以下是一个简单的例子:

#include "lib_acl.h"
#include <stdio.h>

static void test_mkdirs(void)
{
    const char *path = "path1\\path2\\path3\\path4";
    int   perms = 0700, ret;

    ret = acl_make_dirs(path, perms);
    if (ret < 0) {
        printf("create path(%s) error(%s)\n", path, acl_last_serror());
    } else {
        printf("create path(%s) ok\n", path);
    }
}

int main(int argc acl_unused, char *argv[] acl_unused)
{
    test_mkdirs();
    return (0);
}
 

 acl 库下载: http://acl.sourceforge.net/

   个人微博:http://weibo.com/zsxxsz

0
0
分享到:
评论
2 楼 zsxxsz 2010-02-04  
tangxinfa 写道
"path1\path2\path3\path4"应该为"path1\\path2\\path3\\path4"

是的,谢谢更正。另外,acl_make_dirs() 中的 path 在WIN32下也可以为 "C:/test/test1/test2" 格式。
1 楼 tangxinfa 2010-02-03  
"path1\path2\path3\path4"应该为"path1\\path2\\path3\\path4"

相关推荐

    易语言源码创建多级目录.7z

    在易语言中,创建多级目录是一项常见的操作,尤其是在处理文件系统时。这个"易语言源码创建多级目录.7z"压缩包文件提供了一种实现这一功能的源代码示例。 首先,我们来理解一下什么是多级目录。在计算机文件系统中...

    C++循环创建多级目录

    C++循环创建多级目录 本文将详细介绍C++循环创建多级目录的方法,适用于VS2010和CodeBlock C++多级目录循环。 标题解释 C++循环创建多级目录是指使用C++语言来创建多级目录的过程。在 Windows 操作系统中,创建...

    易语言模块创建多级目录.rar

    在本压缩包“易语言模块创建多级目录.rar”中,我们可以看到一个专门针对易语言的模块,用于实现创建多级目录的功能。 创建多级目录在编程中是一项常见的任务,尤其是在处理文件系统操作时。在易语言中,通常我们...

    易语言模块创建多级目录-西风.rar

    易语言模块创建多级目录-西风.rar 易语言模块创建多级目录-西风.rar 易语言模块创建多级目录-西风.rar 易语言模块创建多级目录-西风.rar 易语言模块创建多级目录-西风.rar 易语言模块创建多级目录-西风.rar

    VBA多级目录创建

    创建多级目录的主要方法包括使用FileSystemObject (FSO) 和 使用API函数。FSO是VBA提供的一种对象模型,能够方便地处理文件和目录。以下是一个使用FSO创建多级目录的例子: ```vba Sub CreateFolders() Dim FSO As...

    linux下创建多级目录作业题

    "Linux下创建多级目录作业题详解" Linux 作业题中创建多级目录是一个非常重要的主题,对于 Unix 高级编程和 Linux 操作系统的学习者来说都是必备知识。本文将详细解释创建多级目录的原理和实现方法,并附带相关的...

    VBA示例之 求人不如自已动手 自动建立多级目录

    本示例是关于如何使用VBA来自动创建多级目录,这对于处理大量文件和数据组织至关重要。下面将详细阐述这个主题。 一、VBA基础 VBA是基于VB6.0(Visual Basic 6.0)的脚本语言,它允许用户通过编写代码来控制Office...

    易语言源码创建多级目录-西风.7z

    在这个“易语言源码创建多级目录-西风.7z”压缩包中,包含的是用易语言编写的源代码,用于实现创建多级目录的功能。这个功能在许多应用程序和系统管理中非常实用,例如在安装程序的自解压过程中,或者在数据组织和...

    在Linux下用 mkdir 命令来创建目录和子目录的用法

    如果需要创建多级目录,例如`parent/child`,不使用`-p`选项时,Linux会提示找不到父目录。但使用`-p`(--parents)选项,可以一次性创建所有必要的父目录,如`mkdir -p parent/child`,这会在当前目录下创建`...

    java FTP服务器文件上传下载,创建多级文件夹.zip

    如果要创建多级目录,需要逐级创建。例如,创建`dir1/dir2`目录: ```java String[] dirs = {"dir1", "dir2"}; for (String dir : dirs) { if (!ftpClient.changeWorkingDirectory(dir)) { if (!ftpClient.make...

    创建多级目录.zip易语言程序源码资源下载

    在“创建多级目录.zip”这个资源中,包含的易语言程序源码是为了实现一个重要的操作系统功能——创建多级目录。下面将详细探讨易语言、多级目录的创建以及源码学习的重要性。 易语言作为中国自主研发的编程语言,其...

    java创建多级目录文件的实例讲解

    在Java编程中,创建多级目录文件是一项常见的任务,特别是在处理文件系统操作时。下面将详细解释如何使用Java实现这个功能,并提供一个实例代码来帮助理解。 首先,我们需要了解Java中的`java.io`包,它提供了许多...

    创建多级目录-西风.zip易语言程序源码资源下载

    "创建多级目录-西风.zip" 是一个包含易语言程序源码的资源包,主要功能是实现创建多级目录的操作。这个程序源码对多个层次的目录进行管理,是学习易语言编程和文件系统操作的一个实用案例。 对于学生来说,使用这个...

    python实现一次创建多级目录的方法

    本文实例讲述了python实现一次创建多级目录的方法。分享给大家供大家参考。具体实现方法如下: import os os.makedirs( "/home/jb51/data" ) 这样就可以创建一个三级目录。 希望本文所述对大家的Python程序设计有所...

    php创建多级目录的方法

    - `$recursive`:可选,布尔型,如果设置为`true`,函数会递归地创建多级目录,如果设置为`false`(默认),则只创建一级目录。 - `$context`:可选,资源类型,用于提供上下文的外部变量,影响函数的行为,例如SSL...

    易语言api创建多层目录源码

    这些函数允许开发者创建一个新的目录,但不支持一次性创建多级目录,因此,如果要创建如“\folder1\folder2\folder3”这样的多层结构,我们需要自己编写逻辑来实现。 下面是一个简单的示例,说明如何使用API在...

    一个可以自动创建多级目录的函数

    ‘创建多级目录,可以创建不存在的根目录 ‘参数:要创建的目录名称,可以是多级 ‘返回逻辑值,True成功,False失败 ‘创建目录的根目录从当前目录开始 ‘————————————————— Function ...

    详解C++循环创建多级目录及判断目录是否存在的方法

    C++循环创建多级目录 #include unitfiles.h #ifdef WIN32 #include #include &lt;io&gt; #elif LINUX #include #include &lt;sys&gt; #endif #ifdef WIN32 #define ACCESS _access #define MKDIR(a) _mkdir((a)) #...

    根据Txt文档创建多级文件夹

    `os.makedirs()`函数用于创建多级目录,`exist_ok=True`参数确保如果文件夹已存在,不会抛出错误。 在批处理(Batch)脚本中,我们可以使用`for /f`命令来解析TXT文件,然后用`md`或`mkdir`命令创建文件夹: ```...

    PHP创建多级目录的两种方法

    在本篇教程中,我将介绍两种主要的方法来创建多级目录:使用递归思想和直接利用mkdir()函数。 首先,我们要了解PHP中创建目录的基础函数mkdir()。该函数拥有四个参数:path、mode、recursive和context。其中path是...

Global site tag (gtag.js) - Google Analytics