JUCE: RangedDirectoryIterator Class Reference

JUCE

Public Types | Public Member Functions | List of all members
RangedDirectoryIterator Class Referencefinal
juce_core » files

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. 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 DirectoryEntry & | operator* () const noexcept
| Return an object containing metadata about the file or folder to which the iterator is currently pointing. More...
const DirectoryEntry * | operator-> () const noexcept
RangedDirectoryIterator & | operator++ ()
| 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());
DirectoryEntry
Describes the attributes of a file or folder.
Definition: juce_RangedDirectoryIterator.h:37
DirectoryEntry::isHidden
bool isHidden() const
True if the item is hidden, false otherwise.
Definition: juce_RangedDirectoryIterator.h:55
DirectoryEntry::getFile
File getFile() const
The path to a file or folder.
Definition: juce_RangedDirectoryIterator.h:40
File
Represents a local file or directory.
Definition: juce_File.h:46
RangedDirectoryIterator
Allows iterating over files and folders using C++11 range-for syntax.
Definition: juce_RangedDirectoryIterator.h:101

## Member Typedef Documentation

## ◆ difference_type

using RangedDirectoryIterator::difference_type = std::ptrdiff_t

## ◆ value_type

using RangedDirectoryIterator::value_type = DirectoryEntry

## ◆ reference

using RangedDirectoryIterator::reference = DirectoryEntry

## ◆ pointer

using RangedDirectoryIterator::pointer = void

## ◆ 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

  directory | the directory to search in
  isRecursive | whether all the subdirectories should also be searched
  wildCard | the file pattern to match. This may contain multiple patterns separated by a semi-colon or comma, e.g. "*.jpg;*.png"
  whatToLookFor | a value from the File::TypesOfFileToFind enum, specifying whether to look for files, directories, or both.
  followSymlinks | the 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:

- juce_RangedDirectoryIterator.h