SplitPath


将一个文件名或 URL (统一资源定位符)分解成它的名称、目录、扩展名和驱动器。

SplitPath, InputVar [, OutFileName, OutDir, OutExtension, OutNameNoExt, OutDrive]

参数

InputVar 包含用来被分析的文件名的变量名称。
OutFileName 储存不带路径的文件名的变量名称。文件的扩展名包括在内。
OutDir 储存文件的目录,包括驱动器字母或共享名称(如果有的话)的变量名称。最后的反斜线不被包括在内,即使文件定位在一个驱动器的根目录。
OutExtension 储存文件的扩展名(例如TXT、DOC 或 EXE)的变量名称。圆点不被包括在内。
OutNameNoExt 储存不带路径、圆点和扩展名的文件名的变量名称。
OutDrive 储存文件的驱动器字母或服务器名称的变量名称。如果文件在一个本地或映射驱动器,变量将被设为驱动器字母跟一个冒号(无反斜线)。如果文件在一个网络路径(UNC 通用命名规则),变量将被设为共享名,例如 \\Workstation01

说明

如果相应的信息不需要,任何一个输出变量可被省略。

如果 InputVar 包含一个缺少驱动器字母的文件名(即它不含路径或仅有一个相对路径),OutDrive 将为空,但所有其他输出变量将设置正确。同样地,如果不存在路径,OutDir 将为空;如果有一个路径但不存在文件名, OutFileName 和 OutNameNoExt 将为空。

在文件系统里实际的文件和目录不通过此命令核查。它简单地分析在 InputVar 里给出的字串。

在文件名里不合法的通配符(* 和 ?) 以及其他字符将与合法字符一样来对待,除了冒号、反斜线和句号(圆点),是根据它们在划分驱动器字母、目录和文件扩展名的界限性质来处理的。

对 URLs 的支持: 如果 InputVar 包含一个双斜线,例如 http://domain.com 或 ftp://domain.com,OutDir 将设为协议前缀 + 域名 + 目录 (例如 http://domain.com/images),OutDrive 将设为协议前缀 + 域名 (例如 http://domain.com)。所有其他变量将根据它们上面的定义来设置。

相关命令

A_LoopFileExt, StringSplit, StringGetPos, StringMid, StringTrimLeft, StringLeft, FileSelectFile, FileSelectFolder

范例

FullFileName = C:\My Documents\Address List.txt
   
;仅从上面取出单单文件名:
SplitPath, FullFileName, name

; 仅取出它的目录:
SplitPath, FullFileName,, dir

; 取出所有信息:
SplitPath, FullFileName, name, dir, ext, name_no_ext, drive
   
; 上面这行会将变量如下设置:
; name = Address List.txt
; dir = C:\My Documents
; ext = txt
; name_no_ext = Address List
; drive = C:
翻译:天堂之门 menk33@163.com 2008年7月23日