JUCE: RangedDirectoryIterator Class Reference

JUCE

- Main Page
- Related Pages
- Modules
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

Loading...
Searching...
No Matches
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.
| 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 DirectoryEntry & | operator* () const noexcept
| Return an object containing metadata about the file or folder to which the iterator is currently pointing.
const DirectoryEntry * | operator-> () const noexcept
RangedDirectoryIterator & | operator++ ()
| 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());
DirectoryEntry
Describes the attributes of a file or folder.
Definition juce_RangedDirectoryIterator.h:37
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.

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

- juce_RangedDirectoryIterator.h