# SplitPath

将文件名(路径) 或 URL 分解成它的名称, 目录, 扩展名和驱动器.

    SplitPath Path , &OutFileName, &OutDir, &OutExtension, &OutNameNoExt, &OutDrive

## 参数

Path

  类型: 字符串

  要分析的文件名或 URL.

  注意, 此函数文件名路径仅支持反斜杠(\), URL 仅支持正斜杠(/).

&OutFileName

  类型: VarRef

  要在其中存储文件名而不包含其路径的输出变量的引用. 包含文件的扩展名.

&OutDir

  类型: VarRef

  用于存储文件目录的输出变量的引用, 包括驱动器名或共享名(如果存在). 即使文件位于驱动器的根目录中, 也不包括最后的反斜杠.

&OutExtension

  类型: VarRef

  存储文件扩展名的输出变量的引用(例如 TXT, DOC 或 EXE). 不包含句点.

&OutNameNoExt

  类型: VarRef

  用来保存不带路径, 句点和扩展名的文件名的输出变量的引用.

&OutDrive

  类型: VarRef

  用来保存文件的驱动器字母或共享名的输出变量的引用. 如果文件在本地或映射的驱动器中, 则此变量会被设为驱动器字母后跟着冒号(没有反斜杠). 如果文件在网络路径中(UNC), 则变量会被设为共享名, 例如 \\Workstation01

## 备注

如果不需要相应的信息, 则可以省略相应的输出变量.

如果 Path 包含不带驱动器字母的文件名(即没有路径或只是相对路径), 则 OutDrive 会被置空, 但其他输出变量会被设置正确. 同样地, 如果没有路径, 则 OutDir 会被置空; 而如果有路径但没有文件名, 则 OutFileName 和 OutNameNoExt 都会被置空.

该函数不检查文件系统中的实际文件和目录. 它只是分析所提供的字符串.

文件名中的通配符(* 和 ?) 及其他非法字符被视为等同于合法字符, 除了冒号, 反斜杠和句点, 对它们处理时会根据它们在文件的驱动器字母, 目录和扩展名中的性质进行.

支持 URL: 如果 Path 包含一个冒号后跟两个斜杠, 例如 `"https://domain.com"` 或 `"ftp://domain.com"`, 则 OutDir 会被设置为协议前缀 + 域名 + 目录(例如 https://domain.com/images), 而 OutDrive 被设置为协议前缀 + 域名(例如 https://domain.com). 其他所有变量会根据上面的定义对它们进行设置.

## 相关

A_LoopFileExt, StrSplit, InStr, SubStr, FileSelect, DirSelect

## 示例

演示不同的用法.

    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:

dftg