LMMS
Loading...
Searching...
No Matches
juce::RangedDirectoryIterator Class Referencefinal

#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
 RangedDirectoryIterator (const File &directory, bool isRecursive, const String &wildCard="*", int whatToLookFor=File::findFiles, File::FollowSymlinks followSymlinks=File::FollowSymlinks::yes)
bool operator== (const RangedDirectoryIterator &other) const noexcept
bool operator!= (const RangedDirectoryIterator &other) const noexcept
const DirectoryEntryoperator* () const noexcept
const DirectoryEntryoperator-> () const noexcept
RangedDirectoryIteratoroperator++ ()
DirectoryEntry operator++ (int)

Private Member Functions

bool next ()
void increment ()

Private Attributes

std::shared_ptr< DirectoryIteratoriterator
DirectoryEntry entry

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());
Definition juce_RangedDirectoryIterator.h:36
Definition juce_File.h:45
DirectoryEntry entry
Definition juce_RangedDirectoryIterator.h:173

@tags{Core}

Member Typedef Documentation

◆ difference_type

using juce::RangedDirectoryIterator::difference_type = std::ptrdiff_t

◆ iterator_category

using juce::RangedDirectoryIterator::iterator_category = std::input_iterator_tag

◆ pointer

using juce::RangedDirectoryIterator::pointer = void

◆ reference

using juce::RangedDirectoryIterator::reference = DirectoryEntry

◆ value_type

using juce::RangedDirectoryIterator::value_type = DirectoryEntry

Constructor & Destructor Documentation

◆ RangedDirectoryIterator() [1/2]

juce::RangedDirectoryIterator::RangedDirectoryIterator ( )
default

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

◆ RangedDirectoryIterator() [2/2]

juce::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

◆ increment()

void juce::RangedDirectoryIterator::increment ( )
private

◆ next()

bool juce::RangedDirectoryIterator::next ( )
private

◆ operator!=()

bool juce::RangedDirectoryIterator::operator!= ( const RangedDirectoryIterator & other) const
inlinenoexcept

Returns the inverse of operator==

◆ operator*()

const DirectoryEntry & juce::RangedDirectoryIterator::operator* ( ) const
inlinenoexcept

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

◆ operator++() [1/2]

RangedDirectoryIterator & juce::RangedDirectoryIterator::operator++ ( )
inline

Moves the iterator along to the next file.

◆ operator++() [2/2]

DirectoryEntry juce::RangedDirectoryIterator::operator++ ( int )
inline

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.

◆ operator->()

const DirectoryEntry * juce::RangedDirectoryIterator::operator-> ( ) const
inlinenoexcept

◆ operator==()

bool juce::RangedDirectoryIterator::operator== ( const RangedDirectoryIterator & other) const
inlinenoexcept

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

Member Data Documentation

◆ entry

DirectoryEntry juce::RangedDirectoryIterator::entry
private

◆ iterator

std::shared_ptr<DirectoryIterator> juce::RangedDirectoryIterator::iterator
private

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