- 标题:
解析文件后缀名 - 标签:
AutoHotkey | AHK | InStr | SubStr | suffix name | 后缀名 | path | 路径 | 获取文件后缀 - 标注:
https://www.jianshu.com/p/f7b4adb52225
https://www.jianshu.com/u/1275d25b625e
从文件路径或文件名中获取后缀名是一个常见的平台需求。
; 从路径字串中解析文件后缀名, 不包含验证.
; FilePath: 相对路径或绝对路径, 也可以是文件全名.
; -> 包含句点的理想后缀名. 失败时返回false.
GetFileSuffixName(FilePath) {
; 分别搜索正反斜线; 如果结果均为false则说明输入是文件名, 否则以最后斜线分割.
FileSplitPos1 := InStr(FilePath, "\", , -1), FileSplitPos2 := InStr(FilePath, "/", , -1)
FileFullName := (FileSplitPos1 == false AND FileSplitPos2 == false)
? FilePath : SubStr(FilePath, (FileSplitPos1 > FileSplitPos2) ? FileSplitPos1 + 1 : FileSplitPos2 + 1)
; 对文件名搜索句点; 如果无法找到则说明文件名中不包含后缀, 否则按最后句点分割.
FileSplitPos3 := InStr(FileFullName, ".", , -1) ; 此判别 <= 1 意在筛除无名文件.
return ( ( (FileSplitPos3 <= 1) ? "" : SubStr(FileFullName, FileSplitPos3+1) ) == "")
? false : SubStr(FileFullName, FileSplitPos3)
} ; GetFileSuffixName(FilePathOrName)
至此,已可通过函数便捷获取后缀名。