[已解决]请教如何从一个文件的路径中截取不含文件名的路径?
本帖最后由 smooth 于 2014-3-25 11:39 编辑请教如何从一个文件的路径中截取不含文件名的路径?比如:C:\yonyou\home\starter.jar,要获取C:\yonyou\home,我记得有一个_WinApi_Paht****什么函数可以做到,但是现在怎么也找不到了,只找到了从路径中截取文件名的函数:_WinAPI_PathFindFileName。谢谢! 我看到过的此类”处理文件路径“的提问帖不下十个了吧?
有时候搜索一下,也许会更迅速的得到自己问题的答案。Local $sPath = 'C:\yonyou\home\starter.jar'
MsgBox(0, '', StringRegExpReplace($sPath, '\\[^\\]+, '')) 正则的话
#include <Array.au3>
Local $Str = 'C:\yonyou\home\starter.jar'
MsgBox(0, '原字符串', $Str)
Local $Test = StringRegExp($str, '^(.*)\\(.*)$', 3, 1)
If Not @Error Then MsgBox(0, '匹配数量: ' & UBound($Test), '其中元素为: ' & $Test)
_ArrayDisplay($Test, UBound($Test))
回复 2# user3000
回复 3# lpxx
都不是你们说的,是一个_WinApi_Path****的UDF函数。 _WinAPI_PathRemoveFileSpec 回复 5# afan
谢谢!好像是这个。不过二楼给出的正则,实现起来貌似更简洁。不过他写的不对。 回复afan
谢谢!好像是这个。不过二楼给出的正则,实现起来貌似更简洁。不过他写的不对。
smooth 发表于 2014-3-4 22:20 http://www.autoitx.com/images/common/back.gif
这个一般就正则了,你硬要就给你找了…Local $sPath = 'C:\yonyou\home\starter.jar'
MsgBox(0, '', StringRegExpReplace($sPath, '\\+[^\\]*$', '')) 为什么不直接使用官方提供的头文件 File.au3
_PathSplit
拆分完整路径为驱动器, 目录, 文件名和扩展名. 缺少部分由空字符串代替.
#include <File.au3>
_PathSplit ( $sFilePath, ByRef $sDrive, ByRef $sDir, ByRef $sFileName, ByRef $sExtension ) 本帖最后由 smooth 于 2014-3-5 21:04 编辑
回复 7# afan
好强!A大,哪里可以找到详细的学习资料,我在百度搜索到的,都不怎么系统。这样以后就可以少来劳烦你了。 回复 10# smooth
那就msdn里 为什么不直接使用官方提供的头文件 File.au3
_PathSplit
拆分完整路径为驱动器, 目录, 文件名和扩展名. ...
不死帝国 发表于 2014-3-5 09:29 http://www.autoitx.com/images/common/back.gif
这招最强大
页:
[1]