MeshLib C++ Docs
Loading...
Searching...
No Matches
MRDirectory.h
Go to the documentation of this file.
1#pragma once
2
3#include "MRMeshFwd.h"
4#include <filesystem>
5
6namespace MR
7{
10
11
14{
15 std::filesystem::directory_iterator it;
16 std::error_code & ec;
17 DirectoryIterator & operator ++() { it.increment( ec ); return * this; }
18 auto operator *() const { return *it; }
19};
20
28{
29 std::filesystem::path dir;
30 std::error_code & ec;
31
32 [[nodiscard]] friend DirectoryIterator begin( const Directory & sd )
33 {
34 return DirectoryIterator{ std::filesystem::directory_iterator( sd.dir, sd.ec ), sd.ec };
35 }
36
37 [[nodiscard]] friend std::filesystem::directory_iterator end( const Directory & )
38 {
39 return {};
40 }
41};
42
45{
46 std::filesystem::recursive_directory_iterator it;
47 std::error_code & ec;
48 DirectoryRecursiveIterator & operator ++() { it.increment( ec ); return * this; }
49 auto operator *() const { return *it; }
50};
51
59{
60 std::filesystem::path dir;
61 std::error_code & ec;
62
63 [[nodiscard]] friend DirectoryRecursiveIterator begin( const DirectoryRecursive & sd )
64 {
65 return DirectoryRecursiveIterator{ std::filesystem::recursive_directory_iterator( sd.dir, sd.ec ), sd.ec };
66 }
67
68 [[nodiscard]] friend std::filesystem::recursive_directory_iterator end( const DirectoryRecursive & )
69 {
70 return {};
71 }
72};
73
75[[nodiscard]] MRMESH_API std::filesystem::path findPathWithExtension( const std::filesystem::path & pathWithoutExtension );
76
77[[nodiscard]] inline bool operator !=( const DirectoryIterator & a, const std::filesystem::directory_iterator & b )
78{
79 return !a.ec && a.it != b;
80}
81
82[[nodiscard]] inline bool operator !=( const DirectoryRecursiveIterator & a, const std::filesystem::recursive_directory_iterator & b )
83{
84 return !a.ec && a.it != b;
85}
86
87}
#define MRMESH_API
Definition MRMeshFwd.h:80
std::filesystem::path dir
Definition MRDirectory.h:60
auto operator*() const
Definition MRDirectory.h:18
std::error_code & ec
Definition MRDirectory.h:47
std::error_code & ec
Definition MRDirectory.h:61
friend DirectoryRecursiveIterator begin(const DirectoryRecursive &sd)
Definition MRDirectory.h:63
std::filesystem::directory_iterator it
Definition MRDirectory.h:15
friend std::filesystem::recursive_directory_iterator end(const DirectoryRecursive &)
Definition MRDirectory.h:68
std::error_code & ec
Definition MRDirectory.h:16
bool operator!=(const Color &a, const Color &b)
Definition MRColor.h:104
friend std::filesystem::directory_iterator end(const Directory &)
Definition MRDirectory.h:37
std::filesystem::path dir
Definition MRDirectory.h:29
friend DirectoryIterator begin(const Directory &sd)
Definition MRDirectory.h:32
auto operator*() const
Definition MRDirectory.h:49
DirectoryIterator & operator++()
Definition MRDirectory.h:17
std::error_code & ec
Definition MRDirectory.h:30
DirectoryRecursiveIterator & operator++()
Definition MRDirectory.h:48
std::filesystem::path findPathWithExtension(const std::filesystem::path &pathWithoutExtension)
given file name without final extension, finds in the same folder an existing file with same stem and...
std::filesystem::recursive_directory_iterator it
Definition MRDirectory.h:46
only for bindings generation
Definition MRCameraOrientationPlugin.h:8
iterator of directory items that will save any errors in (ec) instead of throwing exceptions
Definition MRDirectory.h:14
recursive iterator of directory items that will save any errors in (ec) instead of throwing exception...
Definition MRDirectory.h:45
Definition MRDirectory.h:59
Definition MRDirectory.h:28