# fsys.path 库模块帮助文档

## fsys.path 成员列表 <a id="fsys.path" href="#fsys.path">&#x23;</a>

提供文件路径相关函数,  
在导入 fsys 库时将自动导入 fsys.path 库。

### fsys.path.addBackslash(路径) <a id="fsys.path.addBackslash" href="#fsys.path.addBackslash">&#x23;</a>
首先替换所有正斜杠为反斜杠  
如果目录最后面没有反斜杠,则追加反斜杠,  
这个函数实际是调用  io.joinpath(path,"/")

### fsys.path.canonicalize(路径,是否处理短路径) <a id="fsys.path.canonicalize" href="#fsys.path.canonicalize">&#x23;</a>
转换为完整路径，并对路径进行归一化处理。  
参数 @2 可选（默认为true）。  

扩展和适当置换路径中包含的所有 ".." 和 "."   
该函数保证除分区根目录外保证尾部不为斜杠。  
盘符大写。

### fsys.path.cmp(路径,比较路径) <a id="fsys.path.cmp" href="#fsys.path.cmp">&#x23;</a>
比较两个路径是否表示相同路径。  

此函数会归一化路径，并忽略大小写进行比较。  
返回值意义与 string.cmp 函数相同，  
路径相同则返回 0，注意 0 在条件表达式中为 false。  
如果任何一个参数为 null 时返回 -1。  

更准确的检测相同或不同的路径是否指向同一真实文件，  
应使用 fsys.fileInfo 函数

### fsys.path.cmpName(路径, 比较文件名) <a id="fsys.path.cmpName" href="#fsys.path.cmpName">&#x23;</a>
参数 @1 指定要比较的的文件路径。  
参数 @2 如果包含正斜杠或反斜杠，则调用比较与参数 @1 是否表示相同路径，  
否则仅比较两个参数的文件名是否相同。  

此函数会归一化路径，并忽略大小写进行比较。  
返回值意义与 string.cmp 函数相同，  
相同则返回 0，注意 0 在条件表达式中为 false。  
如果任何一个参数为 null 时返回 -1。  

如果要检测不同路径是否指向同一位置，请参考 fsys.fileInfo 函数。

### fsys.path.commonPrefix(路径,路径2) <a id="fsys.path.commonPrefix" href="#fsys.path.commonPrefix">&#x23;</a>
返回两个文件路径的公共前缀目录  
该函数失败保证返回的是一个目录比以斜杠结尾,失败返回null,  
在比较以前自动对路径归一化处理,忽略大小写

### fsys.path.compact(文件路径,显示像素宽度) <a id="fsys.path.compact" href="#fsys.path.compact">&#x23;</a>
截断路径来适合一定数目的像素

### fsys.path.eofBackslash("文件路径") <a id="fsys.path.eofBackslash" href="#fsys.path.eofBackslash">&#x23;</a>
首先替换所有正斜杠为反斜杠  
检测路径尾部是否有反斜杠

### fsys.path.full(path) <a id="fsys.path.full" href="#fsys.path.full">&#x23;</a>
转换为绝对路径。  
未指定参数 @2 时此函数的作用与 io.fullpath 相同。

### fsys.path.full(path,root) <a id="fsys.path.full" href="#fsys.path.full">&#x23;</a>
如果path是相对路径，并且不以`/`、`\`、`~`等字符开始,  
则返回io.joinpath(root,path)  
否则转换为绝对路径返回

### fsys.path.isDir(路径) <a id="fsys.path.isDir" href="#fsys.path.isDir">&#x23;</a>
如果文件路径存在并且是一个目录,  
或者路径路径以斜杠、反斜杠结束返回真

### fsys.path.ischild(目录,路径) <a id="fsys.path.ischild" href="#fsys.path.ischild">&#x23;</a>
检测参数 @2 指定的路径是否在参数 @1 指定的目录之下。  
两个参数指向同一目录时也会返回 true。

### fsys.path.long(路径) <a id="fsys.path.long" href="#fsys.path.long">&#x23;</a>
转为长路径

### fsys.path.relative(路径,目录,返回路径是否以斜杠开始) <a id="fsys.path.relative" href="#fsys.path.relative">&#x23;</a>
将路径转换为指定目录下层的相对路径,  
在比较以前自动对路径归一化处理,忽略大小写  
相同路径则返回空字符串,不是该目录下的路径则返回null  
参数三可选,默认首字符为斜杠

### fsys.path.relativeTo(参考路径,目标路径,参考路径属性,目标路径属性) <a id="fsys.path.relativeTo" href="#fsys.path.relativeTo">&#x23;</a>
自参数@1指定的路径得到一个相对路径指向目标路径  
注意相对路径不一定是子目录,如果是上层目录使用 ../ 表示  
路径属性可为0,或 _FILE_ATTRIBUTE_DIRECTORY,可省略

### fsys.path.removeBackslash <a id="fsys.path.removeBackslash" href="#fsys.path.removeBackslash">&#x23;</a>
移除路径尾部的反斜杠（或者正斜杠）。  
此函数不会对路径作其他改动，不会转换为完整路径，也不会将路径中的斜杠转换为反斜杠。  
fsys.path.canonicalize 函数可以在转换为完整与规范化的路径以后再移除反部的反斜杠。

### fsys.path.removeBackslash(path) <a id="fsys.path.removeBackslash" href="#fsys.path.removeBackslash">&#x23;</a>
移除路径尾部的所有反斜杠与正斜杠并返回路径。  
建议先调用 io.fullpath 将参数转换为完整路径，以避免单斜杠或反斜杠被转换为空字符串。  

参数传入 null 值会报错。

### fsys.path.removeBackslash(path,true) <a id="fsys.path.removeBackslash" href="#fsys.path.removeBackslash">&#x23;</a>
如果路径是分区根目录则直接返回。  
如果是单个字符（包含单个反斜杠、斜杠）则直接返回。  
其他情况移除路径尾部的所有反斜杠与正斜杠并返回路径。  
改用 fsys.path.canonicalize 可转为完整路径并规范化路径写法后再移除尾部反斜杠。

### fsys.path.replaceDir(路径,根目录,新的根目录) <a id="fsys.path.replaceDir" href="#fsys.path.replaceDir">&#x23;</a>
将路径转换为参数2指定根目录下的相对路径  
再将其转换为新的根目录下的绝对路径

### fsys.path.replaceExt(路径,新后缀名) <a id="fsys.path.replaceExt" href="#fsys.path.replaceExt">&#x23;</a>
替换路径中的后缀名部分，后缀名要包含前面的 `.` 。

### fsys.path.replaceFile(路径,新文件名) <a id="fsys.path.replaceFile" href="#fsys.path.replaceFile">&#x23;</a>
替换路径中的文件名部分

### fsys.path.short(路径) <a id="fsys.path.short" href="#fsys.path.short">&#x23;</a>
转为符合 8.3 格式短路径。  
如果文件名符合 8.3 格式且包含空格（例如目录名不超过 8 个字符），则不会去除空格。  
如果文件不存在,返回空值。  

短文件名指向会因实际文件数变更,所以不能把短路径存入数据库  
且并不保证会去除空格。   
创建 process 对象或调用类似函数时，  
用数组或多参数指定启动参数可自动处理包含空格的路径。

### fsys.path.validName(路径) <a id="fsys.path.validName" href="#fsys.path.validName">&#x23;</a>
检测文件名是否合法,  
返回修正后的合法名称  
传入非字符串参数直接返回空值
