\section{\class{wxPathList}}\label{wxpathlist}

The path list is a convenient way of storing a number of directories, and
when presented with a filename without a directory, searching for an existing file
in those directories.  Storing the filename only in an application's files and
using a locally-defined list of directories makes the application and its files more
portable.

Use the \helpref{wxFileName::SplitPath}{wxfilenamesplitpath} global function 
to extract the filename from the path.

\wxheading{Derived from}

\helpref{wxArrayString}{wxarraystring}

\wxheading{Include files}

<wx/filefn.h>

\wxheading{See also}

\helpref{wxArrayString}{wxarraystring}, \helpref{wxStandardPaths}{wxstandardpaths}, \helpref{wxFileName}{wxfilename}

\latexignore{\rtfignore{\wxheading{Members}}}


\membersection{wxPathList::wxPathList}\label{wxpathlistctor}

\func{}{wxPathList}{\void}

Empty constructor.

\func{}{wxPathList}{\param{const wxArrayString\& }{arr}}

Constructs the object calling the \helpref{Add}{wxpathlistadd} function.


\membersection{wxPathList::AddEnvList}\label{wxpathlistaddenvlist}

\func{void}{AddEnvList}{\param{const wxString\& }{env\_variable}}

Finds the value of the given environment variable, and adds all paths
to the path list. Useful for finding files in the PATH variable, for
example.


\membersection{wxPathList::Add}\label{wxpathlistadd}

\func{void}{Add}{\param{const wxString\& }{path}}

\func{void}{Add}{\param{const wxArrayString\& }{arr}}

The first form adds the given directory to the path list, if the path is not already in the list.
The second form just calls the first form on all elements of the given array.

The {\it path} is always considered a directory but no existence checks will be done on it
(because if it doesn't exist, it could be created later and thus result a valid path when
\helpref{FindValidPath}{wxpathlistfindvalidpath} is called).

{\bf Note:} if the given path is relative, it won't be made absolute before adding it
(this is why \helpref{FindValidPath}{wxpathlistfindvalidpath} may return relative paths).


\membersection{wxPathList::EnsureFileAccessible}\label{wxpathlistensurefileaccessible}

\func{void}{EnsureFileAccessible}{\param{const wxString\& }{filename}}

Given a full filename (with path), ensures that files in the same path
can be accessed using the pathlist. It does this by stripping the
filename and adding the path to the list if not already there.


\membersection{wxPathList::FindAbsoluteValidPath}\label{wxpathlistfindabsolutepath}

\constfunc{wxString}{FindAbsoluteValidPath}{\param{const wxString\& }{file}}

Searches for a full (i.e. absolute) path for an existing file by appending {\it file} to
successive members of the path list.  If the file wasn't found, an empty
string is returned.


\membersection{wxPathList::FindValidPath}\label{wxpathlistfindvalidpath}

\constfunc{wxString}{FindValidPath}{\param{const wxString\& }{file}}

Searches for a path for an existing file by appending {\it file} to
successive members of the path list.
If the file wasn't found, an empty string is returned.

The returned path may be relative to the current working directory.

The given string must be a file name, eventually with a path prefix (if the path
prefix is absolute, only its name will be searched); i.e. it must not end with
a directory separator (see \helpref{wxFileName::GetPathSeparator}{wxfilenamegetpathseparator})
otherwise an assertion will fail.

