Loading...
Searching...
No Matches
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...

#include <juce_RangedDirectoryIterator.h>

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.
 
 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.
 
bool operator== (const RangedDirectoryIterator &other) const noexcept
 Returns true if both iterators are in their end/sentinel state, otherwise returns false.
 
bool operator!= (const RangedDirectoryIterator &other) const noexcept
 Returns the inverse of operator==.
 
const DirectoryEntryoperator* () const noexcept
 Return an object containing metadata about the file or folder to which the iterator is currently pointing.
 
const DirectoryEntryoperator-> () const noexcept
 
RangedDirectoryIteratoroperator++ ()
 Moves the iterator along to the next file.
 
DirectoryEntry operator++ (int)
 Moves the iterator along to the next file.
 

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:39
Represents a local file or directory.
Definition juce_File.h:48
Allows iterating over files and folders using C++11 range-for syntax.
Definition juce_RangedDirectoryIterator.h:103

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.

The documentation for this class was generated from the following file:
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram