summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2017-03-03 21:24:58 +0800
committerruki <[email protected]>2017-03-03 21:24:58 +0800
commit9c57f81f0a4884da44e27a1e6ea7fc09fa49e3a3 (patch)
tree9ad8d36f39d97d31b3757c6100239c46c5690d61
parent6df9697cc758bdc56f4337e59079bc810018044f (diff)
write path api docs
-rwxr-xr-xdocs/zh/manual.md124
1 files changed, 123 insertions, 1 deletions
diff --git a/docs/zh/manual.md b/docs/zh/manual.md
index a41334629..76ba37842 100755
--- a/docs/zh/manual.md
+++ b/docs/zh/manual.md
@@ -3911,18 +3911,140 @@ io.printf("xxx.txt", "hello %s!\n", "xmake")
##### path
-路径操作模块,有待后续完善。。。
+路径操作模块,实现跨平台的路径操作,这是xmake的一个自定义的模块。
+
+| 接口 | 描述 | 支持版本 |
+| ----------------------------------------------- | -------------------------------------------- | -------- |
+| [path.join](#path-join) | 拼接路径 | >= 2.0.1 |
+| [path.translate](#path-translate) | 转换路径到当前平台的路径风格 | >= 2.0.1 |
+| [path.basename](#path-basename) | 获取路径最后不带后缀的文件名 | >= 2.0.1 |
+| [path.filename](#path-filename) | 获取路径最后带后缀的文件名 | >= 2.0.1 |
+| [path.extension](#path-extension) | 获取路径的后缀名 | >= 2.0.1 |
+| [path.directory](#path-directory) | 获取路径最后的目录名 | >= 2.0.1 |
+| [path.relative](#path-relative) | 转换成相对路径 | >= 2.0.1 |
+| [path.absolute](#path-absolute) | 转换成绝对路径 | >= 2.0.1 |
+| [path.is_absolute](#path-is_absolute) | 判断是否为绝对路径 | >= 2.0.1 |
###### path.join
+
+- 拼接路径
+
+将多个路径项进行追加拼接,由于`windows/unix`风格的路径差异,使用api来追加路径更加跨平台,例如:
+
+```lua
+print(path.join("$(tmpdir)", "dir1", "dir2", "file.txt"))
+```
+
+上述拼接在unix上相当于:`$(tmpdir)/dir1/dir2/file.txt`,而在windows上相当于:`$(tmpdir)\\dir1\\dir2\\file.txt`
+
+如果觉得这样很繁琐,不够清晰简洁,可以使用:[path.translate](path-translate)方式,格式化转换路径字符串到当前平台支持的格式。
+
+###### path.translate
+
+- 转换路径到当前平台的路径风格
+
+格式化转化指定路径字符串到当前平台支持的路径风格,同时支持`windows/unix`格式的路径字符串参数传入,甚至混合传入,例如:
+
+```lua
+print(path.translate("$(tmpdir)/dir/file.txt"))
+print(path.translate("$(tmpdir)\\dir\\file.txt"))
+print(path.translate("$(tmpdir)\\dir/dir2//file.txt"))
+```
+
+上面这三种不同格式的路径字符串,经过`translate`规范化后,就会变成当前平台支持的格式,并且会去掉冗余的路径分隔符。
+
###### path.basename
+
+- 获取路径最后不带后缀的文件名
+
+```lua
+print(path.basename("$(tmpdir)/dir/file.txt"))
+```
+
+显示结果为:`file`
+
###### path.filename
+
+- 获取路径最后带后缀的文件名
+
+```lua
+print(path.filename("$(tmpdir)/dir/file.txt"))
+```
+
+显示结果为:`file.txt`
+
+###### path.extension
+
+- 获取路径的后缀名
+
+```lua
+print(path.extensione("$(tmpdir)/dir/file.txt"))
+```
+
+显示结果为:`.txt`
+
###### path.directory
+
+- 获取路径最后的目录名
+
+```lua
+print(path.directory("$(tmpdir)/dir/file.txt"))
+```
+
+显示结果为:`dir`
+
###### path.relative
+
+- 转换成相对路径
+
+```lua
+print(path.relative("$(tmpdir)/dir/file.txt", "$(tmpdir)"))
+```
+
+显示结果为:`dir/file.txt`
+
+第二个参数是指定相对的根目录,如果不指定,则默认相对当前目录:
+
+```lua
+os.cd("$(tmpdir)")
+print(path.relative("$(tmpdir)/dir/file.txt"))
+```
+
+这样结果是一样的。
+
###### path.absolute
+
+- 转换成绝对路径
+
+```lua
+print(path.absolute("dir/file.txt", "$(tmpdir)"))
+```
+
+显示结果为:`$(tmpdir)/dir/file.txt`
+
+第二个参数是指定相对的根目录,如果不指定,则默认相对当前目录:
+
+```lua
+os.cd("$(tmpdir)")
+print(path.absolute("dir/file.txt"))
+```
+
+这样结果是一样的。
+
###### path.is_absolute
+- 判断是否为绝对路径
+
+```lua
+if path.is_absolute("/tmp/file.txt") then
+ -- 如果是绝对路径
+end
+```
+
##### table
+路径操作模块,有待后续完善。。。
+
###### table.insert
###### table.join
###### table.join2