JUCE
Public Types | Public Member Functions | List of all members
RangedDirectoryIterator Class Referencefinal

Allows iterating over files and folders using C++11 range-for syntax. More...

Public Types

using difference_type = std::ptrdiff_t
 
using value_type = DirectoryEntry
 
using reference = DirectoryEntry
 
using pointer = void
 
using iterator_category = std::input_iterator_tag
 

Public Member Functions

 RangedDirectoryIterator ()=default
 The default-constructed iterator acts as the 'end' sentinel. More...
 
 RangedDirectoryIterator (const File &directory, bool isRecursive, const String &wildCard="*", int whatToLookFor=File::findFiles, File::FollowSymlinks followSymlinks=File::FollowSymlinks::yes)
 Creates a RangedDirectoryIterator for a given directory. More...
 
bool operator== (const RangedDirectoryIterator &other) const noexcept
 Returns true if both iterators are in their end/sentinel state, otherwise returns false. More...
 
bool operator!= (const RangedDirectoryIterator &other) const noexcept
 Returns the inverse of operator==. More...
 
const DirectoryEntryoperator* () const noexcept
 Return an object containing metadata about the file or folder to which the iterator is currently pointing. More...
 
const DirectoryEntryoperator-> () const noexcept
 
RangedDirectoryIteratoroperator++ ()
 Moves the iterator along to the next file. More...
 
DirectoryEntry operator++ (int)
 Moves the iterator along to the next file. More...
 

Detailed Description

Allows iterating over files and folders using C++11 range-for syntax.

In the following example, we recursively find all hidden files in a specific directory.

std::vector<File> hiddenFiles;
for (DirectoryEntry entry : RangedDirectoryIterator (File ("/path/to/folder"), isRecursive))
if (entry.isHidden())
hiddenFiles.push_back (entry.getFile());
Describes the attributes of a file or folder.
Definition: juce_RangedDirectoryIterator.h:37
bool isHidden() const
True if the item is hidden, false otherwise.
Definition: juce_RangedDirectoryIterator.h:55
File getFile() const
The path to a file or folder.
Definition: juce_RangedDirectoryIterator.h:40
Represents a local file or directory.
Definition: juce_File.h:46
Allows iterating over files and folders using C++11 range-for syntax.
Definition: juce_RangedDirectoryIterator.h:101

Member Typedef Documentation

◆ difference_type

◆ value_type

◆ reference

◆ pointer

◆ iterator_category

using RangedDirectoryIterator::iterator_category = std::input_iterator_tag

Constructor & Destructor Documentation

◆ RangedDirectoryIterator() [1/2]

RangedDirectoryIterator::RangedDirectoryIterator ( )
default

The default-constructed iterator acts as the 'end' sentinel.

◆ RangedDirectoryIterator() [2/2]

RangedDirectoryIterator::RangedDirectoryIterator ( const File directory,
bool  isRecursive,
const String wildCard = "*",
int  whatToLookFor = File::findFiles,
File::FollowSymlinks  followSymlinks = File::FollowSymlinks::yes 
)

Creates a RangedDirectoryIterator for a given directory.

The resulting iterator can be used directly in a 'range-for' expression.

Parameters
directorythe directory to search in
isRecursivewhether all the subdirectories should also be searched
wildCardthe file pattern to match. This may contain multiple patterns separated by a semi-colon or comma, e.g. "*.jpg;*.png"
whatToLookFora value from the File::TypesOfFileToFind enum, specifying whether to look for files, directories, or both.
followSymlinksthe policy to use when symlinks are encountered

Member Function Documentation

◆ operator==()

bool RangedDirectoryIterator::operator== ( const RangedDirectoryIterator other) const
noexcept

Returns true if both iterators are in their end/sentinel state, otherwise returns false.

Referenced by operator!=().

◆ operator!=()

bool RangedDirectoryIterator::operator!= ( const RangedDirectoryIterator other) const
noexcept

Returns the inverse of operator==.

References operator==().

◆ operator*()

const DirectoryEntry& RangedDirectoryIterator::operator* ( ) const
noexcept

Return an object containing metadata about the file or folder to which the iterator is currently pointing.

◆ operator->()

const DirectoryEntry* RangedDirectoryIterator::operator-> ( ) const
noexcept

◆ operator++() [1/2]

RangedDirectoryIterator& RangedDirectoryIterator::operator++ ( )

Moves the iterator along to the next file.

◆ operator++() [2/2]

DirectoryEntry RangedDirectoryIterator::operator++ ( int  )

Moves the iterator along to the next file.

Returns
an object containing metadata about the file or folder to to which the iterator was previously pointing.

References gl::result.


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