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)
 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());

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 
)

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.

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.

The documentation for this class was generated from the following file:
RangedDirectoryIterator
Allows iterating over files and folders using C++11 range-for syntax.
Definition: juce_RangedDirectoryIterator.h:99
DirectoryEntry::isHidden
bool isHidden() const
True if the item is hidden, false otherwise.
Definition: juce_RangedDirectoryIterator.h:54
DirectoryEntry::getFile
File getFile() const
The path to a file or folder.
Definition: juce_RangedDirectoryIterator.h:39
File
Represents a local file or directory.
Definition: juce_File.h:51
DirectoryEntry
Describes the attributes of a file or folder.
Definition: juce_RangedDirectoryIterator.h:35