路径 | Path
路径
该模块为操作或检索文件系统路径提供了方便。
本模块中的函数可以作为参数%28i.e接收一个字符数据。一个字符串或一个字符/字符串%29的列表,并且总是返回以UTF-8%29编码的字符串%28。
本模块中的大多数函数不与文件系统交互,只有少数函数要求它与%28类似。wildcard/2
和expand/1
29%。
摘要
类型
T%28%29
功能
缺席%28路径%29
将给定路径转换为绝对路径。不像expand/1
,没有尝试解决..
,,,.
或~
缺席%28路径,相对[医]调至%29
构建路径relative_to
到path
基准名%28路%29
如果路径本身不包含任何目录分隔符,则返回路径的最后一个组件或路径本身。
基名%28 path,扩展%29
返回path
带着extension
剥光
脏名%28路%29
的目录组件。path
将路径转换为绝对路径并展开任意路径。.
和..
人物与主角~
展开%28路径,相对[医]调至%29
展开路径相对于作为第二个参数展开任意的路径的路径。.
和..
字
ext name%28 path%29
的最后一个组件的扩展。path
加入%28列表%29
加入路径列表
加入%28左,右%29
连接两条路径
相对%28名称%29
强制路径为相对路径。
相对[医]到%28路径,从%29
返回给定的path
相对于给定的from
路径
相对[医]到[医]CWD%28路%29
获取相对于当前工作目录的路径的方便性
根名%28路%29
返回path
带着extension
剥光
根名%28 path,扩展名%29
返回path
带着extension
剥光
分割%28路径%29
将路径拆分为路径分隔符处的列表。
类型%28 name%29
返回路径类型。
通配符%28 GLOB,选项[医][]%29
根据给定的路径遍历路径。glob
表达式并返回匹配列表。
类型
T%28%29
t() :: :unicode.chardata
功能
缺席%28路径%29
absname(t) :: binary
将给定路径转换为绝对路径。不像expand/1
,没有尝试解决..
,,,.
或~
..
.
实例
Unix
Path.absname("foo")
#=> "/usr/local/foo"
Path.absname("../x")
#=> "/usr/local/../x"
窗
Path.absname("foo").
#=> "D:/usr/local/foo"
Path.absname("../x").
#=> "D:/usr/local/../x"
缺席%28路径,相对[医]调至%29
absname(t, t) :: binary
构建路径relative_to
到path
...
如果path
已经是一条绝对的道路,relative_to
被忽视了。另见relative_to/2
...
不像expand/2
,没有尝试解决..
,,,.
或~
..
.
实例
iex> Path.absname("foo", "bar")
"bar/foo"
iex> Path.absname("../x", "bar")
"bar/../x"
基准名%28路%29
basename(t) :: binary
如果路径本身不包含任何目录分隔符,则返回路径的最后一个组件或路径本身。
实例
iex> Path.basename("foo")
"foo"
iex> Path.basename("foo/bar")
"bar"
iex> Path.basename("/")
""
基名%28 path,扩展%29
basename(t, t) :: binary
返回path
带着extension
脱光衣服。
此函数应用于删除可能存在或不存在的特定扩展。
实例
iex> Path.basename("~/foo/bar.ex", ".ex")
"bar"
iex> Path.basename("~/foo/bar.exs", ".ex")
"bar.exs"
iex> Path.basename("~/foo/bar.old.ex", ".ex")
"bar.old"
脏名%28路%29
dirname(t) :: binary
的目录组件。path
...
实例
iex> Path.dirname("/foo/bar.ex")
"/foo"
iex> Path.dirname("/foo/bar/baz.ex")
"/foo/bar"
iex> Path.dirname("/foo/bar/")
"/foo/bar"
展开%28路径%29
expand(t) :: binary
将路径转换为绝对路径并展开任意路径。.
和..
人物与主角~
..
.
实例
Path.expand("/foo/bar/../bar")
#=> "/foo/bar"
展开%28路径,相对[医]调至%29
expand(t, t) :: binary
展开路径相对于作为第二个参数展开任意的路径的路径。.
和..
人物。
如果路径已经是绝对路径,relative_to
被忽视了。
请注意,此函数处理path
领先~
作为一个绝对的。
第二个参数首先扩展为绝对路径。
实例
# Assuming that the absolute path to baz is /quux/baz
Path.expand("foo/bar/../bar", "baz")
#=> "/quux/baz/foo/bar"
Path.expand("foo/bar/../bar", "/baz")
"/baz/foo/bar"
Path.expand("/foo/bar/../bar", "/baz")
"/foo/bar"
ext name%28 path%29
extname(t) :: binary
的最后一个组件的扩展。path
...
实例
iex> Path.extname("foo.erl")
".erl"
iex> Path.extname("~/foo/bar")
""
加入%28列表%29
join([t, ...]) :: binary
加入路径列表。
此函数应用于将路径列表转换为路径。请注意,任何尾随斜杠在连接时都会被移除。
实例
iex> Path.join(["~", "foo"])
"~/foo"
iex> Path.join(["foo"])
"foo"
iex> Path.join(["/", "foo", "bar/"])
"/foo/bar"
加入%28左,右%29
join(t, t) :: binary
连接两条路径。
正确的路径将始终扩展到其相对格式,任何尾随斜杠都将在加入时被移除。
实例
iex> Path.join("foo", "bar")
"foo/bar"
iex> Path.join("/foo", "/bar/")
"/foo/bar"
相对%28名称%29
relative(t) :: binary
强制路径为相对路径。
实例
Unix
Path.relative("/usr/local/bin") #=> "usr/local/bin"
Path.relative("usr/local/bin") #=> "usr/local/bin"
Path.relative("../usr/local/bin") #=> "../usr/local/bin"
窗
Path.relative("D:/usr/local/bin") #=> "usr/local/bin"
Path.relative("usr/local/bin") #=> "usr/local/bin"
Path.relative("D:bar.ex") #=> "bar.ex"
Path.relative("/bar/foo.ex") #=> "bar/foo.ex"
相对[医]到%28路径,从%29
relative_to(t, t) :: binary
返回给定的path
相对于给定的from
路径。
换句话说,此函数试图删除from
前缀path
...
此函数不查询文件系统,因此它假定路径之间不存在符号链接。
如果找不到直接相对路径,则返回原始路径。
实例
iex> Path.relative_to("/usr/local/foo", "/usr/local")
"foo"
iex> Path.relative_to("/usr/local/foo", "/")
"usr/local/foo"
iex> Path.relative_to("/usr/local/foo", "/etc")
"/usr/local/foo"
相对[医]到[医]CWD%28路%29
relative_to_cwd(t) :: binary
获取相对于当前工作目录的路径的方便性。
如果由于某种原因无法检索当前工作目录,则此函数将返回给定的path
...
根名%28路%29
rootname(t) :: binary
返回path
带着extension
脱光衣服。
实例
iex> Path.rootname("/foo/bar")
"/foo/bar"
iex> Path.rootname("/foo/bar.ex")
"/foo/bar"
根名%28 path,扩展名%29
rootname(t, t) :: binary
返回path
带着extension
脱光衣服。
此函数应用于删除可能存在或不存在的特定扩展。
实例
iex> Path.rootname("/foo/bar.erl", ".erl")
"/foo/bar"
iex> Path.rootname("/foo/bar.erl", ".ex")
"/foo/bar.erl"
分割%28路径%29
split(t) :: [binary]
将路径拆分为路径分隔符处的列表。
如果给定空字符串,则返回空列表。
在Windows上,路径在“\”和“/”分隔符上分开,如果存在驱动字母,则始终以小写形式返回。
实例
iex> Path.split("")
[]
iex> Path.split("foo")
["foo"]
iex> Path.split("/foo/bar")
["/", "foo", "bar"]
类型%28 name%29
type(t) :: :absolute | :relative | :volumerelative
返回路径类型。
实例
Unix
Path.type("/") #=> :absolute
Path.type("/usr/local/bin") #=> :absolute
Path.type("usr/local/bin") #=> :relative
Path.type("../usr/local/bin") #=> :relative
Path.type("~/file") #=> :relative
窗
Path.type("D:/usr/local/bin") #=> :absolute
Path.type("usr/local/bin") #=> :relative
Path.type("D:bar.ex") #=> :volumerelative
Path.type("/bar/foo.ex") #=> :volumerelative
通配符%28 GLOB,选项[医][]%29
wildcard(t, keyword) :: [binary]
根据给定的路径遍历路径。glob
表达式并返回匹配列表。
通配符看起来像一个普通的路径,只是某些“通配符”是以一种特殊的方式解释的。以下字符是特殊的:
?
-匹配一个字符
*
-匹配任意数量的字符,直到文件名末尾、下一个点或下一个斜杠。
**
-两个相邻*
作为单一模式使用,将匹配所有文件和零或多个目录和子目录。
[char1,char2,...]
-匹配列出的任何字符;用连字符分隔的两个字符将匹配一系列字符。不要在逗号之前和之后添加空格,因为它将匹配包含空格字符本身的路径。
{item1,item2,...}
-匹配其中一个选项,不要在逗号前后添加空格,因为它将匹配包含空格字符本身的路径。
其他人物代表自己。只有在同一位置具有完全相同字符的路径才能匹配。请注意,匹配是区分大小写的:"a"
不匹配"A"
...
默认情况下,模式*
和?
不匹配以点开始的文件.
除非match_dot: true
给出opts
.
.
.
实例
假设您有一个名为projects
其中有三个药剂项目:elixir
,,,ex_doc
,和plug
.你可以找到所有.beam
中的文件。ebin
每个项目的目录如下:
Path.wildcard("projects/*/ebin/**/*.beam")
如果你想同时搜索.beam
和.app
文件,你可以:
Path.wildcard("projects/*/ebin/**/*.{beam,app}")
© 2012–2017 Plataformatec
根据ApacheLicense,版本2.0获得许可。