std::filesystem:: exists
|
Definiert im Header
<filesystem>
|
||
|
bool
exists
(
std::
filesystem
::
file_status
s
)
noexcept
;
|
(1) | (seit C++17) |
|
bool
exists
(
const
std::
filesystem
::
path
&
p
)
;
|
(2) | (seit C++17) |
|
bool
exists
(
const
std::
filesystem
::
path
&
p,
std::
error_code
&
ec
)
noexcept
;
|
(3) | (seit C++17) |
Prüft, ob der angegebene Dateistatus oder Pfad einer existierenden Datei oder einem existierenden Verzeichnis entspricht.
Inhaltsverzeichnis |
Parameter
| s | - | zu prüfender Dateistatus |
| p | - | zu untersuchender Pfad |
| ec | - | Ausgabeparameter für Fehlerberichterstattung in der nicht-werfenden Überladung |
Rückgabewert
true wenn der angegebene Pfad oder Dateistatus einer existierenden Datei oder einem existierenden Verzeichnis entspricht, false andernfalls.
Ausnahmen
Jede Überladung, die nicht als
noexcept
gekennzeichnet ist, kann
std::bad_alloc
auslösen, wenn die Speicherallokation fehlschlägt.
Keine Filesystem-Exception wird geworfen, wenn das Objekt nicht existiert (verwenden Sie den Rückgabewert).
Hinweise
Die von dieser Funktion bereitgestellten Informationen werden normalerweise auch als Nebenprodukt der Verzeichnisiteration bereitgestellt. Während der Verzeichnisiteration ist der Aufruf von exists ( * iterator ) weniger effizient als exists ( iterator - > status ( ) ) .
Beispiel
#include <cstdint> #include <filesystem> #include <fstream> #include <iostream> namespace fs = std::filesystem; void demo_exists(const fs::path& p, fs::file_status s = fs::file_status{}) { std::cout << p; if (fs::status_known(s) ? fs::exists(s) : fs::exists(p)) std::cout << " exists\n"; else std::cout << " does not exist\n"; } int main() { const fs::path sandbox{"sandbox"}; fs::create_directory(sandbox); std::ofstream{sandbox/"file"}; // create regular file fs::create_symlink("non-existing", sandbox/"symlink"); demo_exists(sandbox); for (const auto& entry : fs::directory_iterator(sandbox)) demo_exists(entry, entry.status()); // use cached status from directory entry fs::remove_all(sandbox); }
Ausgabe:
"sandbox" exists "sandbox/symlink" does not exist "sandbox/file" exists
Siehe auch
|
(C++17)
(C++17)
|
Bestimmt Dateiattribute
Bestimmt Dateiattribute, überprüft das Symlink-Ziel (Funktion) |
|
(C++17)
|
Repräsentiert Dateityp und Berechtigungen
(Klasse) |
|
Überprüft, ob der Verzeichniseintrag auf ein existierendes Dateisystemobjekt verweist
(Öffentliche Mitgliedsfunktion von
std::filesystem::directory_entry
)
|