acl
3.5.3.0
|
宏定义 | |
#define | ACL_SCAN_FLAG_RECURSIVE (1 << 0) /* 是否做递归扫描 */ |
#define | ACL_SCAN_FLAG_RMDIR (1 << 1) /* 是否自动删除空目录 */ |
#define | ACL_SCAN_CTL_END 0 |
#define | ACL_SCAN_CTL_FN 1 |
#define | ACL_SCAN_CTL_CTX 2 |
#define | ACL_SCAN_CTL_RMDIR_FN 3 |
类型定义 | |
typedef struct ACL_SCAN_DIR | ACL_SCAN_DIR |
typedef int(* | ACL_SCAN_DIR_FN) (ACL_SCAN_DIR *scan, void *ctx) |
typedef int(* | ACL_SCAN_RMDIR_FN) (ACL_SCAN_DIR *scan, const char *path, void *ctx) |
函数 | |
ACL_API ACL_SCAN_DIR * | acl_scan_dir_open (const char *path, int recursive) |
ACL_API ACL_SCAN_DIR * | acl_scan_dir_open2 (const char *path, unsigned flags) |
ACL_API void | acl_scan_dir_close (ACL_SCAN_DIR *scan) |
ACL_API void | acl_scan_dir_reset (ACL_SCAN_DIR *scan) |
ACL_API void | acl_scan_dir_ctl (ACL_SCAN_DIR *scan, int name,...) |
ACL_API const char * | acl_scan_dir_path (ACL_SCAN_DIR *scan) |
ACL_API const char * | acl_scan_dir_file (ACL_SCAN_DIR *scan) |
ACL_API unsigned | acl_scan_dir_ndirs (ACL_SCAN_DIR *scan) |
ACL_API unsigned | acl_scan_dir_nfiles (ACL_SCAN_DIR *scan) |
ACL_API acl_int64 | acl_scan_dir_nsize (ACL_SCAN_DIR *scan) |
ACL_API int | acl_scan_stat (ACL_SCAN_DIR *scan, struct acl_stat *sbuf) |
ACL_API int | acl_scan_dir_stat (ACL_SCAN_DIR *scan, struct acl_stat *sbuf) |
ACL_API int | acl_scan_dir_end (ACL_SCAN_DIR *scan) |
ACL_API int | acl_scan_dir_push (ACL_SCAN_DIR *scan, const char *path) |
ACL_API ACL_SCAN_DIR * | acl_scan_dir_pop (ACL_SCAN_DIR *scan) |
ACL_API const char * | acl_scan_dir_next (ACL_SCAN_DIR *scan) |
ACL_API const char * | acl_scan_dir_next_file (ACL_SCAN_DIR *scan) |
ACL_API const char * | acl_scan_dir_next_dir (ACL_SCAN_DIR *scan) |
ACL_API const char * | acl_scan_dir_next_name (ACL_SCAN_DIR *scan, int *is_file) |
ACL_API acl_int64 | acl_scan_dir_size2 (ACL_SCAN_DIR *scan, int *nfile, int *ndir) |
ACL_API acl_int64 | acl_scan_dir_size (const char *pathname, int recursive, int *nfile, int *ndir) |
ACL_API acl_int64 | acl_scan_dir_rm2 (ACL_SCAN_DIR *scan, int *nfile, int *ndir) |
ACL_API acl_int64 | acl_scan_dir_rm (const char *pathname, int recursive, int *ndir, int *nfile) |
#define ACL_SCAN_CTL_CTX 2 |
设置用户参数
在文件 acl_scan_dir.h 第 70 行定义.
#define ACL_SCAN_CTL_END 0 |
控制结束标志
在文件 acl_scan_dir.h 第 68 行定义.
#define ACL_SCAN_CTL_FN 1 |
设置 ACL_SCAN_DIR_FN 标志
在文件 acl_scan_dir.h 第 69 行定义.
#define ACL_SCAN_CTL_RMDIR_FN 3 |
设置删除目录回调函数
在文件 acl_scan_dir.h 第 71 行定义.
#define ACL_SCAN_FLAG_RECURSIVE (1 << 0) /* 是否做递归扫描 */ |
在文件 acl_scan_dir.h 第 46 行定义.
#define ACL_SCAN_FLAG_RMDIR (1 << 1) /* 是否自动删除空目录 */ |
在文件 acl_scan_dir.h 第 47 行定义.
typedef struct ACL_SCAN_DIR ACL_SCAN_DIR |
目录扫描句柄类型定义
在文件 acl_scan_dir.h 第 14 行定义.
typedef int(* ACL_SCAN_DIR_FN) (ACL_SCAN_DIR *scan, void *ctx) |
typedef int(* ACL_SCAN_RMDIR_FN) (ACL_SCAN_DIR *scan, const char *path, void *ctx) |
目录扫描过程中,如果遇到空目录且用户设置了自动删除空目录标记,则回调此方法 通知用户删除指定的空目录
scan | {ACL_SCAN_DIR*} 目录扫描指针 |
ctx | {void*} 用户参数指针 |
在文件 acl_scan_dir.h 第 29 行定义.
ACL_API void acl_scan_dir_close | ( | ACL_SCAN_DIR * | scan | ) |
关闭扫描句柄
scan | {ACL_SCAN_DIR*} 类型指针 |
ACL_API void acl_scan_dir_ctl | ( | ACL_SCAN_DIR * | scan, |
int | name, | ||
... | |||
) |
通过此接口设置扫描句柄的回调函数、参数等,当最后的一个控制标志 为 ACL_SCAN_CTL_END 时表示控制参数列表结束
scan | {ACL_SCAN_DIR*} 类型指针 |
name | {int} 第一个控制项, ACL_SCAN_CTL_XXX |
ACL_API int acl_scan_dir_end | ( | ACL_SCAN_DIR * | scan | ) |
目录是否扫描完毕
scan | {ACL_SCAN_DIR*} 类型指针 |
ACL_API const char* acl_scan_dir_file | ( | ACL_SCAN_DIR * | scan | ) |
当前所扫描的文件名,如果扫描的对象不是文件,则返回 "\0"
scan | {ACL_SCAN_DIR*} 类型指针 |
ACL_API unsigned acl_scan_dir_ndirs | ( | ACL_SCAN_DIR * | scan | ) |
当前已经扫描的目录总个数
scan | {ACL_SCAN_DIR*} |
ACL_API const char* acl_scan_dir_next | ( | ACL_SCAN_DIR * | scan | ) |
获得 scan 当前所在路径中下一个路径名或文件名, 注意,该函数内部不会递归扫描, 即 acl_scan_dir_open 中的参数 recursive 对该函数无效 1、 ".." 与 "." 不包含在内 2、 仅返回名称, 不包括路径, 路径可以由 acl_scan_dir_path 获得
scan | {ACL_SCAN_DIR*} 指针地址 |
ACL_API const char* acl_scan_dir_next_dir | ( | ACL_SCAN_DIR * | scan | ) |
获得下一个目录名(不包含路径名, 相对路径名可以通过 acl_scan_dir_path 获得), 该函数内部支持递归扫描目录功能, acl_scan_dir_open 中的参数 recursive 对该函数有效
scan | {ACL_SCAN_DIR*} 类型指针 |
ACL_API const char* acl_scan_dir_next_file | ( | ACL_SCAN_DIR * | scan | ) |
获得下一个文件名(不包含路径名, 相对路径名可以通过 acl_scan_dir_path 获得), 该函数内部支持递归扫描目录功能, acl_scan_dir_open 中的参数 recursive 对该函数有效
scan | {ACL_SCAN_DIR*} 类型指针 |
ACL_API const char* acl_scan_dir_next_name | ( | ACL_SCAN_DIR * | scan, |
int * | is_file | ||
) |
获得下一个目录名或文件名(不包含路径名, 相对路径名可以通过 acl_scan_dir_path 获得), 该函数内部支持递归扫描目录功能, acl_scan_dir_open 中的参数 recursive 对该函数有效
scan | {ACL_SCAN_DIR*} 类型指针 |
is_file | {int*} 当返回结果非空时,该地址存储的值表示所扫描到的是否是 文件,如果为 true 则为文件,否则为目录 |
ACL_API unsigned acl_scan_dir_nfiles | ( | ACL_SCAN_DIR * | scan | ) |
当前已经扫描的文件总个数
scan | {ACL_SCAN_DIR*} |
ACL_API acl_int64 acl_scan_dir_nsize | ( | ACL_SCAN_DIR * | scan | ) |
当前已经扫描的文件大小总和
scan | {ACL_SCAN_DIR*} |
ACL_API ACL_SCAN_DIR* acl_scan_dir_open | ( | const char * | path, |
int | recursive | ||
) |
打开扫描路径, 为整个 acl_scan_dir 函数库的初始化函数
path | {const char*} 要打开的路径名称 |
recursive | {int} 是否需要递归扫描子目录 |
ACL_API ACL_SCAN_DIR* acl_scan_dir_open2 | ( | const char * | path, |
unsigned | flags | ||
) |
打开扫描路径, 为整个 acl_scan_dir 函数库的初始化函数
path | {const char*} 要打开的路径名称 |
flags | {unsigned} 标志位, 见 ACL_SCAN_FLAG_XXX |
ACL_API const char* acl_scan_dir_path | ( | ACL_SCAN_DIR * | scan | ) |
获得当前状态下的相对路径(相对于程序调用 acl_scan_dir_open 函数时的程序运行路径)
scan | {ACL_SCAN_DIR*} 类型指针 |
ACL_API ACL_SCAN_DIR* acl_scan_dir_pop | ( | ACL_SCAN_DIR * | scan | ) |
弹出下一个路径
scan | {ACL_SCAN_DIR*} 类型指针 |
ACL_API int acl_scan_dir_push | ( | ACL_SCAN_DIR * | scan, |
const char * | path | ||
) |
将需要进行扫描的相对路径压栈
scan | {ACL_SCAN_DIR*} 类型指针 |
path | {const char*} 需要压栈的相对路径 |
ACL_API void acl_scan_dir_reset | ( | ACL_SCAN_DIR * | scan | ) |
将目录扫描句柄的与统计信息相关的变量置0
scan | {ACL_SCAN_DIR*} 类型指针 |
ACL_API acl_int64 acl_scan_dir_rm | ( | const char * | pathname, |
int | recursive, | ||
int * | ndir, | ||
int * | nfile | ||
) |
删除所给路径下所有的文件及目录
pathname | {const char*} 路径名 |
recursive | {int} 是否递归删除所有子目录及子目录下的文件 |
ndir | {int*} 若该参数非空,过程结束后 *ndir 等于总共删除的目录数目 |
nfile | {int*} 若该参数非空,过程结束后 *nfile 等于总共删除的文件数目 |
ACL_API acl_int64 acl_scan_dir_rm2 | ( | ACL_SCAN_DIR * | scan, |
int * | nfile, | ||
int * | ndir | ||
) |
删除所给路径下所有的文件及目录
nfile | {int*} 扫描完后记录所扫描的文件总数 |
ndir | {int*} 扫描完后记录所扫描的目录总数 该函数内部支持递归扫描目录功能, acl_scan_dir_open 中的参数 recursive 对该函数有效 |
scan | {ACL_SCAN_DIR*} 打开目录时的扫描句柄 |
ACL_API acl_int64 acl_scan_dir_size | ( | const char * | pathname, |
int | recursive, | ||
int * | nfile, | ||
int * | ndir | ||
) |
取得当前目录下所占磁盘空间大小(以字节计算)
pathname | {const char*} 目录路径名 |
recursive | {int} 是否要递归扫描该目录下的所有子目录 |
nfile | {int*} 扫描完后记录所扫描的文件总数 |
ndir | {int*} 扫描完后记录所扫描的目录总数 |
ACL_API acl_int64 acl_scan_dir_size2 | ( | ACL_SCAN_DIR * | scan, |
int * | nfile, | ||
int * | ndir | ||
) |
取得当前目录下所占磁盘空间大小(以字节计算) 该函数内部支持递归扫描目录功能, acl_scan_dir_open 中的参数 recursive 对该函数有效
scan | {ACL_SCAN_DIR*} 打开目录时的扫描句柄 |
nfile | {int*} 扫描完后记录所扫描的文件总数 |
ndir | {int*} 扫描完后记录所扫描的目录总数 |
ACL_API int acl_scan_dir_stat | ( | ACL_SCAN_DIR * | scan, |
struct acl_stat * | sbuf | ||
) |
取得当前正在扫描的目录节点的属性信息,该 API 不同于 acl_scan_stat
scan | {ACL_SCAN_DIR*} 类型指针 |
sbuf | {struct acl_stat*} 类型指针 |
ACL_API int acl_scan_stat | ( | ACL_SCAN_DIR * | scan, |
struct acl_stat * | sbuf | ||
) |
取得当前扫描到的文件或目录的属性信息,类似于标准的 stat() 函数
scan | {ACL_SCAN_DIR*} 类型指针 |
sbuf | {struct acl_stat*} 类型指针 |