在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
分享到:
相关推荐
在易语言中,创建多级目录是一项常见的操作,尤其是在处理文件系统时。这个"易语言源码创建多级目录.7z"压缩包文件提供了一种实现这一功能的源代码示例。 首先,我们来理解一下什么是多级目录。在计算机文件系统中...
C++循环创建多级目录 本文将详细介绍C++循环创建多级目录的方法,适用于VS2010和CodeBlock C++多级目录循环。 标题解释 C++循环创建多级目录是指使用C++语言来创建多级目录的过程。在 Windows 操作系统中,创建...
在本压缩包“易语言模块创建多级目录.rar”中,我们可以看到一个专门针对易语言的模块,用于实现创建多级目录的功能。 创建多级目录在编程中是一项常见的任务,尤其是在处理文件系统操作时。在易语言中,通常我们...
易语言模块创建多级目录-西风.rar 易语言模块创建多级目录-西风.rar 易语言模块创建多级目录-西风.rar 易语言模块创建多级目录-西风.rar 易语言模块创建多级目录-西风.rar 易语言模块创建多级目录-西风.rar
创建多级目录的主要方法包括使用FileSystemObject (FSO) 和 使用API函数。FSO是VBA提供的一种对象模型,能够方便地处理文件和目录。以下是一个使用FSO创建多级目录的例子: ```vba Sub CreateFolders() Dim FSO As...
"Linux下创建多级目录作业题详解" Linux 作业题中创建多级目录是一个非常重要的主题,对于 Unix 高级编程和 Linux 操作系统的学习者来说都是必备知识。本文将详细解释创建多级目录的原理和实现方法,并附带相关的...
本示例是关于如何使用VBA来自动创建多级目录,这对于处理大量文件和数据组织至关重要。下面将详细阐述这个主题。 一、VBA基础 VBA是基于VB6.0(Visual Basic 6.0)的脚本语言,它允许用户通过编写代码来控制Office...
在这个“易语言源码创建多级目录-西风.7z”压缩包中,包含的是用易语言编写的源代码,用于实现创建多级目录的功能。这个功能在许多应用程序和系统管理中非常实用,例如在安装程序的自解压过程中,或者在数据组织和...
如果需要创建多级目录,例如`parent/child`,不使用`-p`选项时,Linux会提示找不到父目录。但使用`-p`(--parents)选项,可以一次性创建所有必要的父目录,如`mkdir -p parent/child`,这会在当前目录下创建`...
如果要创建多级目录,需要逐级创建。例如,创建`dir1/dir2`目录: ```java String[] dirs = {"dir1", "dir2"}; for (String dir : dirs) { if (!ftpClient.changeWorkingDirectory(dir)) { if (!ftpClient.make...
在“创建多级目录.zip”这个资源中,包含的易语言程序源码是为了实现一个重要的操作系统功能——创建多级目录。下面将详细探讨易语言、多级目录的创建以及源码学习的重要性。 易语言作为中国自主研发的编程语言,其...
在Java编程中,创建多级目录文件是一项常见的任务,特别是在处理文件系统操作时。下面将详细解释如何使用Java实现这个功能,并提供一个实例代码来帮助理解。 首先,我们需要了解Java中的`java.io`包,它提供了许多...
"创建多级目录-西风.zip" 是一个包含易语言程序源码的资源包,主要功能是实现创建多级目录的操作。这个程序源码对多个层次的目录进行管理,是学习易语言编程和文件系统操作的一个实用案例。 对于学生来说,使用这个...
本文实例讲述了python实现一次创建多级目录的方法。分享给大家供大家参考。具体实现方法如下: import os os.makedirs( "/home/jb51/data" ) 这样就可以创建一个三级目录。 希望本文所述对大家的Python程序设计有所...
- `$recursive`:可选,布尔型,如果设置为`true`,函数会递归地创建多级目录,如果设置为`false`(默认),则只创建一级目录。 - `$context`:可选,资源类型,用于提供上下文的外部变量,影响函数的行为,例如SSL...
这些函数允许开发者创建一个新的目录,但不支持一次性创建多级目录,因此,如果要创建如“\folder1\folder2\folder3”这样的多层结构,我们需要自己编写逻辑来实现。 下面是一个简单的示例,说明如何使用API在...
‘创建多级目录,可以创建不存在的根目录 ‘参数:要创建的目录名称,可以是多级 ‘返回逻辑值,True成功,False失败 ‘创建目录的根目录从当前目录开始 ‘————————————————— Function ...
C++循环创建多级目录 #include unitfiles.h #ifdef WIN32 #include #include <io> #elif LINUX #include #include <sys> #endif #ifdef WIN32 #define ACCESS _access #define MKDIR(a) _mkdir((a)) #...
`os.makedirs()`函数用于创建多级目录,`exist_ok=True`参数确保如果文件夹已存在,不会抛出错误。 在批处理(Batch)脚本中,我们可以使用`for /f`命令来解析TXT文件,然后用`md`或`mkdir`命令创建文件夹: ```...
在本篇教程中,我将介绍两种主要的方法来创建多级目录:使用递归思想和直接利用mkdir()函数。 首先,我们要了解PHP中创建目录的基础函数mkdir()。该函数拥有四个参数:path、mode、recursive和context。其中path是...