tango.io.FilePath 翻译(r4774)

本文详细介绍了FilePath类的功能,包括路径编辑、文件系统访问方法等。FilePath类支持路径成分的编辑及文件系统的访问,适用于多种文件类的构造参数。文章还探讨了类的各种方法,如创建、标准化路径等。

tango.io.FilePath

License:

BSD style: see license.txt

Version:

Oct 2004: Initial version

Version:

Nov 2006: Australian version

Version:

Feb 2007: Mutating version

Version:

Mar 2007: Folded FileProxy in

Version:

Nov 2007: VFS dictates '/' always be used

Version:

Feb 2008: Split file-system calls into a struct

Author:

Kris

FilePath 提供一个有效地编辑路径成分和访问底层文件系统的途径。

当你想徒步访问文件系统时使用模块Path.d 来代替,它不会改变路径成分。

void memmove(void* dst, void* src, uint bytes) [private, extern(C)] # class FilePath : PathView #
构造文件路径模型。预计被用作各种文件类的构造参数。目的是使他们容易转换成别的表示方法如绝对形式( absolute)、标准形式( canonical)或网络地址( Url)。
文件路径包含非 ansi字符而用 utf-8编码。以这种方式来支持 Unicode相信比提供一个 wchar版本的 FilePath更合适,并且给 Uri类带来一致的和兼容的方法。

FilePath旨在被转换,这样每个变异方法可以修改内部的内容。在Path.d中可见到一个轻量级的不可变变种。

:毗连的'.'分隔符形式被看作特殊的,用在把它们赋给没有明显后缀的名称时。此外,一个在名称开头的'.'预示它不是一个后缀,例如".file"是一个名称不是一个后缀。中间'.'字符的形式属于后缀,如"file....suffix"包含后缀自身的点操作符'.'。看看没有点操作符后缀的方法ext()

注意 Win32 '\' 字符被FilePath 构造器默认地转换为 '/'

alias bool delegate (FilePath, bool) Filter [public] #
用于通过 toList()筛查路径的过滤器。
FilePath opCall(char[] filepath = null) [static] #
创建一个 FilePath实例的调用捷径。这使得与结构用法有相同的语法,因此揭示了一个迁移途径。
this(char[] filepath = null) #
从提供的字符串的副本创建一个 FilePath
FilePath假定可以表示路径( path)和名称( name)部分,因此可以被分离成别的符合逻辑的有效路径。也就是说,一个文件的 "name"部分是跟随在最右边路径分隔符的路径部分。意图是用相同方式对待文件和目录;作为一个名称和一个可选的祖传结构。尽可能的通过添加一个尾部路径分隔符到参数以纠偏解释。这样就会产生一个空的 name属性。

对于文件路径复制,我们发现最常见的是显式.dup,而比较起来别名使用出现得很罕见。我们也注意到与面向C的操作系统交互调用占了很大比重,这种情况下意味着一个null结束后缀。于是,FilePath把它们合并为一个简单的操作。

注意Win32 '\' 字符被正规化为 '/' 代替。

char[] toString() [final] #
返回这个 filepath的完整文本。
FilePath dup() [final] #
复制该路径。
char[] cString() [final] #
返回该文件路径的完整文本,对于带 C api使用时以一个 null作结尾符。对于任何 D api使用 toString代替。
值得注意的是 nul总是嵌入 FilePath维护的字符串,所以在 C调用时没有堆开销。
char[] root() [final] #
返回这个路径的根。根是像 "c:"这样的构造。
char[] folder() [final] #
返回文件路径。路径可以用一个“ /”开始和结束。根路径是“ /”和未指定路径返回一个空字符串。目录路径可以被分离,目录名可以被放到“ name”成员中;目录路径可以看作与文件路径不同。
char[] parent() [final] #
返回一个表示当前路径的上一级的路径。在名称部分为空的特殊情况下,将典型地返回当前路径部分。在以下情形,扫描前面部分的路径:
1
2
normal:  /x/y/z => /x/y
special: /x/y/  => /x
注意它返回适合分离成路径( path)和名称( name)部分的路径(没有尾部分隔符)。

参见pop(),当它与FilePath实例一起工作时通常会更有用。

char[] name() [final] #
返回这个文件或目录的名称。
char[] ext() [final] #
ext(扩展名)是文件名的尾部,最右边“ .”分隔符的右边部分,如路径“ path.bar”ext是“ bar”。注意相邻的分隔符的形式被特殊对待;如“ ..”以没有 ext结束。
char[] suffix() [final] #
后缀有点像 ext,但它包含分隔符,如路径“ foo.bar”的后缀是“ .bar”
char[] path() [final] #
返回 root (根) + folder(文件夹)的组合。
char[] file() [final] #
返回 name (名字) + suffix (后缀)的组合。
int opEquals(Object o) [override, final] #
如果所有字段都相等就返回 true
int opEquals(char[] s) [final] #
判断这个 FilePath与给定的文字是否相等 ?
bool isAbsolute() [final] #
如果这文件路径不是与当前工作目录相应的就返回 true
bool isEmpty() [final] #
如果这个 FilePath 为空就返回 true
bool isChild() [final] #
如果 FilePath有上一级就返回 true。 需要指出的是 ,上一级由路径中的路径分隔符的出现来定义。这意味着“ \foo”中的“ foo”被认为是根的一个孩子(下一级)。
FilePath replace(char from, char to) [final] #
'to'中实体来替换 'from' 中所有的实体。
FilePath standard() [final] #
转换路径分隔符到标准格式,使用“ /”作为路径分隔符。这将与 URI和所有 Tango支持的现代 O / S兼容。已知的例外包括 Windows命令行处理器,它把“ /”作为一个开关。使用 native()方法来支持。

注:会改变当前路径。

FilePath native() [final] #
如果需要的话,转换到原生操作系统路径分隔符,例如处理 Windows命令行时。

注:会改变当前路径。可以使用这种模式来获得一份副本:path.dup.native

FilePath cat(char[][] others...) [final] #
连接文字到这个路径;没有分隔符被添加。也可看看 join()
FilePath append(char[] path) [final] #
附加一个文件夹到这个路径。根据需要添加一个前导分隔符。
FilePath prepend(char[] path) [final] #
在当前路径前面追加一个文件夹。如果需要的话添加一个后续分隔符。
FilePath set(FilePath path) #
重置当前路径的内容到另一个路径并且后果新解析。
FilePath set(char[] path, bool convert = false) [final] #
重置这个路径的内容,并重新解析。在解析前,有一个任选的布尔标志可以把路径转换成标准形式(转换“ \”成“ /”)。
FilePath isFolder(bool folder) [final] #
为已知是文件夹的路径避开了正常的查找。如果文件夹为 true,文件系统查找将会跳过它。
FilePath root(char[] other) [final] #
更换这个路径的根部分。
FilePath folder(char[] other) [final] #
替换这个路径的文件夹部分。这个文件夹将根据需要用路径分隔符填补。
FilePath name(char[] other) [final] #
替换这个路径的名字部分。
FilePath suffix(char[] other) [final] #
替换这个路径的后缀部分。该后缀将会根据需要在前面放一个文件分隔符。
FilePath path(char[] other) [final] #
替换这个路径的根和文件夹部分并重新解析。替换者会根据需要用一个路径分隔符填补。
FilePath file(char[] other) [final] #
替换这个路径的文件和后缀部分并重新解析。代替者根据需要前置一个后缀分隔符。
FilePath pop() [final] #
弹出当前文件路径的上一级(在原位改变这个 FilePath)。
char[] join(char[][] paths...) [static] #
把一系列路径结合起来。一个路径分隔符被潜在地插入到每个段中。
FilePath absolute(char[] prefix) [final] # 把这个 转换成绝对格式,必须时使用给定前缀。如果这个 已经是绝对的,就原封不动地返回它。
必要是调整后返回该 FilePath
char[] stripped(char[] path, char c = FileConst.PathSeparatorChar) [static] #
返回一个调整过的路径,如没有结尾分隔符的非空实例这样的情形。
char[] padded(char[] path, char c = FileConst.PathSeparatorChar) [static] #
返回一个调整过的路径,在总是有结尾分隔符的非空实例情形下。
char[] prefixed(char[] s, char c = FileConst.PathSeparatorChar) [static] #
返回一个调整过的路径,在非空实例总是有一个分隔符前缀的情形。
FilePath parse() [private, final] #
解析路径的规格,必要时改变 '\''/'
void expand(uint size) [private, final] #
潜在地可更多内容腾出地方来。
int adjust(int head, int tail, int len, char[] sub) [private, final] #
插入 /删除内部的内容。
FilePath create() [final] #
文件系统方法
创建一个由这个文件夹和所有父文件夹一起组成的完整路径。路径必须不包含 '.''..'部分。相关的方法包括 PathUtil.normalize()absolute()

注意,每个部分被当做文件夹创建,包括结尾部分。

返回:

一个连锁引用 (this)

抛出:

系统错误时抛出 IOException 异常。

抛出:

如果一个部分是作为一个文件存在而不是文件夹时,会抛出 IllegalArgumentException(非法参数异常)异常。
FilePath[] toList(Filter filter = null) [final] #
列出这个文件夹内的文件名集合,使用提供的过滤器来控制列表:
1
bool delegate (FilePath path, bool isFolder) Filter
给定路径包含过滤器就返回 true,否则返回
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值