JUCE  v6.1.6 (6.0.8-1114)
JUCE API
Looking for a senior C++ dev?
I'm looking for work. Hire me!
juce::FileSearchPath Class Reference

Represents a set of folders that make up a search path. More...

#include <juce_FileSearchPath.h>

Collaboration diagram for juce::FileSearchPath:

Public Member Functions

 FileSearchPath ()=default
 Creates an empty search path. More...
 
 FileSearchPath (const FileSearchPath &)
 Creates a copy of another search path. More...
 
 FileSearchPath (const String &path)
 Creates a search path from a string of pathnames. More...
 
 ~FileSearchPath ()=default
 Destructor. More...
 
void add (const File &directoryToAdd, int insertIndex=-1)
 Adds a new directory to the search path. More...
 
bool addIfNotAlreadyThere (const File &directoryToAdd)
 Adds a new directory to the search path if it's not already in there. More...
 
void addPath (const FileSearchPath &)
 Merges another search path into this one. More...
 
int findChildFiles (Array< File > &results, int whatToLookFor, bool searchRecursively, const String &wildCardPattern="*") const
 Searches the path for a wildcard. More...
 
Array< FilefindChildFiles (int whatToLookFor, bool searchRecursively, const String &wildCardPattern="*") const
 Searches the path for a wildcard. More...
 
int getNumPaths () const
 Returns the number of folders in this search path. More...
 
bool isFileInPath (const File &fileToCheck, bool checkRecursively) const
 Finds out whether a file is inside one of the path's directories. More...
 
FileSearchPathoperator= (const FileSearchPath &)
 Copies another search path. More...
 
FileSearchPathoperator= (const String &path)
 Uses a string containing a list of pathnames to re-initialise this list. More...
 
File operator[] (int index) const
 Returns one of the folders in this search path. More...
 
void remove (int indexToRemove)
 Removes a directory from the search path. More...
 
void removeNonExistentPaths ()
 Removes any directories that don't actually exist. More...
 
void removeRedundantPaths ()
 Removes any directories that are actually subdirectories of one of the other directories in the search path. More...
 
String toString () const
 Returns the search path as a semicolon-separated list of directories. More...
 

Private Member Functions

void init (const String &)
 

Private Attributes

StringArray directories
 

Detailed Description

Represents a set of folders that make up a search path.

See also
File

@tags{Core}

Constructor & Destructor Documentation

◆ FileSearchPath() [1/3]

juce::FileSearchPath::FileSearchPath ( )
default

Creates an empty search path.

◆ ~FileSearchPath()

juce::FileSearchPath::~FileSearchPath ( )
default

Destructor.

◆ FileSearchPath() [2/3]

juce::FileSearchPath::FileSearchPath ( const String path)

Creates a search path from a string of pathnames.

The path can be semicolon- or comma-separated, e.g. "/foo/bar;/foo/moose;/fish/moose"

The separate folders are tokenised and added to the search path.

◆ FileSearchPath() [3/3]

juce::FileSearchPath::FileSearchPath ( const FileSearchPath )

Creates a copy of another search path.

Member Function Documentation

◆ add()

void juce::FileSearchPath::add ( const File directoryToAdd,
int  insertIndex = -1 
)

Adds a new directory to the search path.

The new directory is added to the end of the list if the insertIndex parameter is less than zero, otherwise it is inserted at the given index.

◆ addIfNotAlreadyThere()

bool juce::FileSearchPath::addIfNotAlreadyThere ( const File directoryToAdd)

Adds a new directory to the search path if it's not already in there.

Returns
true if the directory has been added, false otherwise.

◆ addPath()

void juce::FileSearchPath::addPath ( const FileSearchPath )

Merges another search path into this one.

This will remove any duplicate directories.

◆ findChildFiles() [1/2]

int juce::FileSearchPath::findChildFiles ( Array< File > &  results,
int  whatToLookFor,
bool  searchRecursively,
const String wildCardPattern = "*" 
) const

Searches the path for a wildcard.

Note that there's a newer, better version of this method which returns the results array, and in almost all cases, you should use that one instead! This one is kept around mainly for legacy code to use.

◆ findChildFiles() [2/2]

Array<File> juce::FileSearchPath::findChildFiles ( int  whatToLookFor,
bool  searchRecursively,
const String wildCardPattern = "*" 
) const

Searches the path for a wildcard.

This will search all the directories in the search path in order and return an array of the files that were found.

Parameters
whatToLookFora value from the File::TypesOfFileToFind enum, specifying whether to return files, directories, or both.
searchRecursivelywhether to recursively search the subdirectories too
wildCardPatterna pattern to match against the filenames
Returns
the number of files added to the array
See also
File::findChildFiles

◆ getNumPaths()

int juce::FileSearchPath::getNumPaths ( ) const

Returns the number of folders in this search path.

See also
operator[]

◆ init()

void juce::FileSearchPath::init ( const String )
private

◆ isFileInPath()

bool juce::FileSearchPath::isFileInPath ( const File fileToCheck,
bool  checkRecursively 
) const

Finds out whether a file is inside one of the path's directories.

This will return true if the specified file is a child of one of the directories specified by this path. Note that this doesn't actually do any searching or check that the files exist - it just looks at the pathnames to work out whether the file would be inside a directory.

Parameters
fileToCheckthe file to look for
checkRecursivelyif true, then this will return true if the file is inside a subfolder of one of the path's directories (at any depth). If false it will only return true if the file is actually a direct child of one of the directories.
See also
File::isAChildOf

◆ operator=() [1/2]

FileSearchPath& juce::FileSearchPath::operator= ( const FileSearchPath )

Copies another search path.

◆ operator=() [2/2]

FileSearchPath& juce::FileSearchPath::operator= ( const String path)

Uses a string containing a list of pathnames to re-initialise this list.

This search path is cleared and the semicolon- or comma-separated folders in this string are added instead. e.g. "/foo/bar;/foo/moose;/fish/moose"

◆ operator[]()

File juce::FileSearchPath::operator[] ( int  index) const

Returns one of the folders in this search path.

The file returned isn't guaranteed to actually be a valid directory.

See also
getNumPaths

◆ remove()

void juce::FileSearchPath::remove ( int  indexToRemove)

Removes a directory from the search path.

◆ removeNonExistentPaths()

void juce::FileSearchPath::removeNonExistentPaths ( )

Removes any directories that don't actually exist.

◆ removeRedundantPaths()

void juce::FileSearchPath::removeRedundantPaths ( )

Removes any directories that are actually subdirectories of one of the other directories in the search path.

If the search is intended to be recursive, there's no point having nested folders in the search path, because they'll just get searched twice and you'll get duplicate results.

e.g. if the path is "c:\abc\de;c:\abc", this method will simplify it to "c:\abc"

◆ toString()

String juce::FileSearchPath::toString ( ) const

Returns the search path as a semicolon-separated list of directories.

Member Data Documentation

◆ directories

StringArray juce::FileSearchPath::directories
private

The documentation for this class was generated from the following file: