MadSc13ntist Posted November 1, 2004 Share Posted November 1, 2004 I am embarassed to post this but i hate "jerry-rig's" and "quick fixes" especially when it comes to the script i am writing... that being said, here comes the humility... I am trying to figure out how to take a filepath (example: C:\temp\blah\blah\blah\filename.txt) and return JUST the filename (example: filename.txt)... failed to date: ;Spliting the path into an array $patharray = StringSplit($filepath, "\") ;and try to use $patharray[0] to tell me which array variable to grab... $counter = $patharray[0] $filename = $patharray[' & $counter & '] ... but when i try MsgBox(4096, 'test variable', 'the filename is: ' & $filename) it returns: the filename is: 6 (which is obviously $patharray[0]).... but no errors.... (am i close?) it was suggested at one point that i just build a psychotically big IF THEN ELSE friggin forrest for If $counter = '1' Then..... If $counter = '2' Then.... i'm sure there has got to be a better way to do this or i'm probably just forgetting something obvious... Any help you cats could throw me would be much appreciated Link to comment Share on other sites More sharing options...
MadSc13ntist Posted November 1, 2004 Author Share Posted November 1, 2004 :: Bowing Humbly to the alter of Larry :: I shall erect a monolithic tribute in your likeness..... one of these days... Thanks a million Larry, i feel better about getting answers like these from people with your level of experience.... Props! Link to comment Share on other sites More sharing options...
SlimShady Posted November 2, 2004 Share Posted November 2, 2004 Here's my version. Func GetFilename($Path) Local $TempArr Local $Filename $TempArr = StringSplit($Path, "\") If @error Then $Filename = $Path Else $Filename = $TempArr[UBound($TempArr) - 1] EndIf Return $Filename EndFunc Link to comment Share on other sites More sharing options...
scriptkitty Posted November 2, 2004 Share Posted November 2, 2004 you could use it and grab the working directory by removal as well: $fullpath="c:\temp\bobs bilfold\notes\myprogram.exe" $filename=GetFilename($fullpath) $path=StringReplace($fullpath,$filename,"") msgbox(1,$filename,$path) Func GetFilename($Path) Local $TempArr Local $Filename $TempArr = StringSplit($Path, "\") If @error Then $Filename = $Path Else $Filename = $TempArr[UBound($TempArr) - 1] EndIf Return $Filename EndFunc I personally like the StringRight and StringLeft Approach: $path=Splitit("c:\temp\bobs bilfold\notes\myprogram.exe") msgbox(1,$path[0],$path[1]) func SplitIt($FPath); returns Path and file in array Dim $patharray[2] $_loc=StringInStr($FPath,"\",0,-1) $patharray[0]=Stringright($FPath,StringLen($FPath)-$_loc) $patharray[1]=Stringleft($FPath,$_loc) return $patharray endfunc AutoIt3, the MACGYVER Pocket Knife for computers. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now