PATHSCAN$ function

Purpose | Find a file on disk and return the path and/or file name parts.
Syntax | fil$ = PATHSCAN$(director, filespec$[, pathspec$])
Remarks | The PATHSCAN$ function scans specified directories to find a particular file. If the file is found, it returns either the full path/file name, or a selected part of it. If the file is not found, a nul (zero-length) string is returned. If you wish to simply parse a text file name, without regard to its validation on disk, you should use the companion function PATHNAME$.

director

This is one of the following words which is used to specify the requested part:

FULL | Return the full drive/path/file name.
PATH | Return the path portion of the path/file name. That is the text up to and including the last backslash (\).
NAME | Return the name portion of the path/file name. That is the text to the right of the last backslash (\), ending just before the last period (.) in the string.
EXTN | Return the extension portion of the path/file name. That is the last period (.) in the string plus the text to the right of it.
NAMEX | Return the NAME and the EXTN parts combined.

filespec$ | A file name which is expected to exist on disk. It must not be an ambiguous name -- that is, it may not include a query (?) or an asterisk (*) character.

pathspec$

An optional path string which includes one or more paths to be searched to find filespec$. If multiple path names are included in this string, they must each be separated by a semicolon (;) delimiter. If pathspec$ is not given, or it is a nul (zero-length) string, the following directories are searched:

1. | The directory from which the application was loaded.

2. | The current directory.

3. | The Windows System32 directory.

4. | The Windows System16 directory.

5. | The Windows directory.

6. | The directories in the PATH environment variable.

See also | DIR$, EXE, PATHNAME$, PARSE, PARSE$, PARSECOUNT

Example

The following information assumes that the file named "MyFile.txt" currently exists in the directory "C:\PB".

f$ = "MyFile.txt" : p$ = "C:\MyDir;C:\PB"

PATHSCAN$(FULL, f$, p$) ' returns "C:\PB\MyFile.txt"

PATHSCAN$(PATH, f$, p$) ' returns "C:\PB\"

PATHSCAN$(NAME, f$, p$) ' returns "MyFile"

PATHSCAN$(EXTN, f$, p$) ' returns ".txt"

PATHSCAN$(NAMEX,f$, p$) ' returns "MyFile.txt"