Sign in to follow this  
Followers 0
nf67

Extracting just the filename and extension from a full path?

6 posts in this topic

Hi there,

is it possible to extract just the filename and extension from a full file path (including the file itself)?

If so, how is this done?

Thanks in advance Posted Image

Share this post


Link to post
Share on other sites



Yes, _Pathsplit does what you need: "Splits a path into the drive, directory, file name and file extension parts"

For the exact syntax please see the help file.


My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2017-04-18 - Version 1.4.8.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX (NEW 2017-02-27 - Version 1.3.1.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2015-04-01 - Version 0.4.0.0) - Download - General Help & Support - Example Scripts
Excel - Example Scripts - Wiki
Word - Wiki
PowerPoint (2015-06-06 - Version 0.0.5.0) - Download - General Help & Support

Tutorials:
ADO - Wiki

 

Share this post


Link to post
Share on other sites

nf67,

Or you can use these SREs from Malkey to get various parts of the path directly: :mellow:

Local $sFile = "C:\Program Files\Another Dir\AutoIt3\AutoIt3.chm"

; Drive letter -                                     Example returns     "C"
Local $sDrive = StringRegExpReplace($sFile, ":.*$", "")

; Full Path with backslash -                         Example returns     "C:\Program Files\Another Dir\AutoIt3\"
Local $sPath = StringRegExpReplace($sFile, "(^.*\\)(.*)", "\1")

; Full Path without backslash -                     Example returns     "C:\Program Files\Another Dir\AutoIt3"
Local $sPathExDr = StringRegExpReplace($sFile, "(^.:)(\\.*\\)(.*$)", "\2")

; Full Path w/0 backslashes, nor drive letter -     Example returns     "\Program Files\Another Dir\AutoIt3\"
Local $sPathExDrBSs = StringRegExpReplace($sFile, "(^.:\\)(.*)(\\.*$)", "\2")

; Path w/o backslash, not drive letter: -             Example returns     "Program Files\Another Dir\AutoIt3"
Local $sPathExBS = StringRegExpReplace($sFile, "(^.*)\\(.*)", "\1")

; File name with ext -                                 Example returns     "AutoIt3.chm"
Local $sFilName = StringRegExpReplace($sFile, "^.*\\", "")

; File name w/0 ext -                                 Example returns     "AutoIt3"
Local $sFilenameExExt = StringRegExpReplace($sFile, "^.*\\|\..*$", "")

; Dot Extenstion -                                     Example returns     ".chm"
Local $sDotExt = StringRegExpReplace($sFile, "^.*\.", ".$1")

; Extenstion -                                         Example returns     "chm"
Local $sExt = StringRegExpReplace($sFile, "^.*\.", "")

MsgBox(0, "Path File Name Parts", _
        "Drive             " & @TAB & $sDrive & @CRLF & _
        "Path              " & @TAB & $sPath & @CRLF & _
        "Path w/o backslash" & @TAB & $sPathExBS & @CRLF & _
        "Path w/o Drv:     " & @TAB & $sPathExDr & @CRLF & _
        "Path w/o Drv or \'s" & @TAB & $sPathExDrBSs & @CRLF & _
        "File Name         " & @TAB & $sFilName & @CRLF & _
        "File Name w/o Ext " & @TAB & $sFilenameExExt & @CRLF & _
        "Dot Extension     " & @TAB & $sDotExt & @CRLF & _
        "Extension         " & @TAB & $sExt & @CRLF)

M23

1 person likes this

Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind._______My UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Share this post


Link to post
Share on other sites

Or use the _PathSplit

#include <file.au3>

Dim $Path = "C:\Folder\SubFolder\File.ext"
Dim $szDrive, $szDir, $szFName, $szExt

_PathSplit($Path, $szDrive, $szDir, $szFName, $szExt)

MsgBox(0, "Filename", $szFName & $szExt )

A-Jay


Rule #1: Always do a backup         Rule #2: Always do a backup (backup of rule #1)

Share this post


Link to post
Share on other sites

Thank you Water, Melba, Mobius and Ajag for summing up all these solutions to choose from, much appreciated. :mellow:

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0