本文主要介绍File关键字,它是文件系统相关的操作的入口
读文件
命令 | 格式 | 解释 | 示例 |
READ | file(READ <filename> <variable> [OFFSET <offset>] [LIMIT <max-in>] [HEX]) | 读取文件名为 <filename> 的文件并将其内容存储到 <variable> 变量中。可选的参数: <offset> 指定起始读取位置,<max-in> 最多读取字节数,HEX 将数据转为十六进制(处理二进制数据十分有用) | |
STRINGS | file(STRINGS <filename> <variable> [<options>...]) | 从 <filename> 文件解析一串 ASCII 字符串并存储到 <variable> 中。文件中的二进制文件将被忽略。回车字符(\r,CR)将被忽略。 | file(STRINGS myfile.txt myfile) |
写
命令 | 格式 | 解释 | 示例 |
WRITE | file(WRITE <filename> <content>...) | 写入 <content> 到 <filename> 文件中。如果文件不存在则创建。如果文件已存在,WRITE 模式将覆盖内容 | |
APPEND | file(APPEND <filename> <content>...) | 如果为 APPEND 模式将追加内容。任何在 <filename> 文件路径中的不存在文件夹都将被创建。 |
文件系统
命令 | 格式 | 解释 | 示例 |
GLOB | file(GLOB <variable> [LIST_DIRECTORIES true|false] [RELATIVE <path>] [CONFIGURE_DEPENDS] [<globbing-expressions>...]) file(GLOB_RECURSE <variable> [FOLLOW_SYMLINKS] [LIST_DIRECTORIES true|false] [RELATIVE <path>] [CONFIGURE_DEPENDS] [<globbing-expressions>...]) | 产生一个匹配 <globbing-expressions> 的文件列表并将它存储到变量 <variable> 中 | *.cxx - 匹配所有后缀名为 cxx 的文件 *.vt? - 匹配所有后缀名为 vta,...,vtz 的文件 f[3-5].txt - 匹配 f3.txt, f4.txt, f5.txt 文件 |
GLOB_RECURSE | 同上 | 递归所有匹配文件夹的子文件夹和匹配的文件 | /dir/*.py - match all python files in /dir and subdirectories |
RENAME | file(RENAME <oldname> <newname>) | 从 <oldname> 移动文件或文件夹到 <newname> ,自动替换目标路径 | |
REMOVE/REMOVE_RECURSE | file(REMOVE [<files>...]) file(REMOVE_RECURSE [<files>...]) | 删除文件,REMOVE_RECURSE 模式将删除给定文件和文件夹(递归) | |
MAKE_DIRECTORY | file(MAKE_DIRECTORY [<directories>...]) | 创建给定文件夹,并根据需求创建其父文件夹 | |
COPY/INSTALL | file(<COPY|INSTALL> <files>... DESTINATION <dir> [FILE_PERMISSIONS <permissions>...] [DIRECTORY_PERMISSIONS <permissions>...] [NO_SOURCE_PERMISSIONS] [USE_SOURCE_PERMISSIONS] [FILES_MATCHING] [[PATTERN <pattern> | REGEX <regex>] [EXCLUDE] [PERMISSIONS <permissions>...]] [...]) | 复制文件、路径和符号链接到目标路径 |
文件路径转换
命令 | 格式 | 解释 | 示例 |
RELATIVE_PATH | file(RELATIVE_PATH <variable> <director> <file>) | 计算文件 <file> 相对<directory> 的相对路径并存储到 <viriable> 变量中 |
文件传输
命令 | 格式 | 解释 | 示例 |
DOWNLOAD | file(DOWNLOAD <url> <file> [<options>...]) | <DOWNLOAD> 模式将下载指定的 <url> 到本地 <file> | |
UPLOAD | file(UPLOAD <file> <url> [<options>...]) | UPLOAD 模式将上传本地 <file> 到给定的 <url>。 |
文件锁
命令 | 格式 | 解释 | 示例 |
LOCK | file(LOCK <path> [DIRECTORY] [RELEASE] [GUARD <FUNCTION|FILE|PROCESS>] [RESULT_VARIABLE <variable>] [TIMEOUT <seconds>]) | 锁定一个 <path> 指定的文件 |