获取文件任意层级文件夹的名称

今天无意中回答网友的问题,今天就对文件路径的内容进行一个扩展,希望大家能够喜欢! 获取某个文件所在目录下任意一层文件夹的名字。 获取文件任意层级文件夹的名称(完整路径,层级); 完整路径,即文件的完整路径,例如:E:\8.AHK项目\AutoAHK\AutoAHK\AutoAHK.ahk 层级即距离文件的层级,1为当前文件夹,2为上一层文件夹,以此类推直到根目录。

今天无意中回答网友的问题,今天就对文件路径的内容进行一个扩展,希望大家能够喜欢!

获取某个文件所在目录下任意一层文件夹的名字。
获取文件任意层级文件夹的名称(完整路径,层级);
完整路径,即文件的完整路径,例如:E:\8.AHK项目\AutoAHK\AutoAHK\AutoAHK.ahk
层级即距离文件的层级,1为文件本身,2为文件所在文件夹,以此类推直到根目录。

 

获取文件任意层级文件夹的名称(完整路径,层级)
{
	StringLen, pos_prev, 完整路径
	pos_prev += 1 ; 改变位置到最后一个字符的后面.
	num:=0 ;用于标示文件夹的层数
	loop
	{
		; 从右边开始查找第 N 个匹配:
		StringGetPos, pos, 完整路径, \, R%A_Index%
		if ErrorLevel
			break
		length := pos_prev - pos - 1
		pos_prev := pos
		pos += 2  ; 进行调整以便使用 StringMid.
		StringMid, path_component%A_Index%, 完整路径, %pos%, %length%
		num+=1
		if(num= 层级)
		{
			return,path_component%num%
			break
		}
	}
	if(num<层级)
	{
		MsgBox,该文件所在的目录共%num%层!请调整层级数.
	}
}

; 示例 :
; 把文件的完整路径名分解成各个部分.
; 请注意使用 StringSplit 或
; 解析循环 会更容易, 这里只是为了演示.
FileSelectFile, file, , , Pick a filename in a deeply nested folder:
if file <>
{
	MsgBox,% 获取文件任意层级文件夹的名称(file,10)
}

给TA捐赠
共{{data.count}}人
人已捐赠
其他

AutoHotKey实现从一个脚本发送任何长度的字符串到另一个脚本

2018-1-6 18:07:40

其他

[快捷启动]RunZ - 极灵活快速启动神器!用 AutoHotKey 编写的高效快速启动工具 (免费/快速/支持扩展)

2018-1-7 16:34:54

2 条回复 A文章作者 M管理员
  1. YanYan

    第二次弹的内容是空白。

    • 河许人

      第二次弹出空白什么意思?

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索