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
19{
20 std::filesystem::path dir;
21 std::error_code & ec;
22};
23
31{
32 std::filesystem::path dir;
33 std::error_code & ec;
34};
35
38{
39 std::filesystem::directory_iterator it;
40 std::error_code & ec;
41 DirectoryIterator & operator ++() { it.increment( ec ); return * this; }
42 auto operator *() const { return *it; }
43};
44
46[[nodiscard]] MRMESH_API std::filesystem::path findPathWithExtension( const std::filesystem::path & pathWithoutExtension );
47
50{
51 std::filesystem::recursive_directory_iterator it;
52 std::error_code & ec;
53 DirectoryRecursiveIterator & operator ++() { it.increment( ec ); return * this; }
54 auto operator *() const { return *it; }
55};
56
57[[nodiscard]] inline DirectoryIterator begin( const Directory & sd )
58{
59 return DirectoryIterator{ std::filesystem::directory_iterator( sd.dir, sd.ec ), sd.ec };
60}
61
62[[nodiscard]] inline std::filesystem::directory_iterator end( const Directory & )
63{
64 return {};
65}
66
67[[nodiscard]] inline bool operator !=( const DirectoryIterator & a, const std::filesystem::directory_iterator & b )
68{
69 return !a.ec && a.it != b;
70}
71
72[[nodiscard]] inline DirectoryRecursiveIterator begin( const DirectoryRecursive & sd )
73{
74 return DirectoryRecursiveIterator{ std::filesystem::recursive_directory_iterator( sd.dir, sd.ec ), sd.ec };
75}
76
77[[nodiscard]] inline std::filesystem::recursive_directory_iterator end( const DirectoryRecursive & )
78{
79 return {};
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}
MR_BIND_IGNORE_PY auto end(const BitSet &)
Definition MRBitSet.h:397
MR_BIND_IGNORE_PY auto begin(const BitSet &a)
Definition MRBitSet.h:395
std::filesystem::path dir
Definition MRDirectory.h:32
auto operator*() const
Definition MRDirectory.h:42
std::error_code & ec
Definition MRDirectory.h:52
std::error_code & ec
Definition MRDirectory.h:33
std::filesystem::directory_iterator it
Definition MRDirectory.h:39
std::error_code & ec
Definition MRDirectory.h:40
bool operator!=(const Color &a, const Color &b)
Definition MRColor.h:104
std::filesystem::path dir
Definition MRDirectory.h:20
auto operator*() const
Definition MRDirectory.h:54
DirectoryIterator & operator++()
Definition MRDirectory.h:41
std::error_code & ec
Definition MRDirectory.h:21
MRMESH_API 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...
DirectoryRecursiveIterator & operator++()
Definition MRDirectory.h:53
std::filesystem::recursive_directory_iterator it
Definition MRDirectory.h:51
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:38
recursive iterator of directory items that will save any errors in (ec) instead of throwing exception...
Definition MRDirectory.h:50
Definition MRDirectory.h:31
Definition MRDirectory.h:19