std::experimental::filesystem::file_size
Von cppreference.com
< cpp | experimental | fs
| Definiert im Header <experimental/filesystem> |
||
| std::uintmax_t file_size( const path& p ); std::uintmax_t file_size( const path& p, error_code& ec ); |
(1) | (Dateisystem-TS) |
Gibt die Größe der regulären Datei p zurück, bestimmt, als ob der Member st_size der Struktur aus dem POSIX stat gelesen würde (symlinks werden gefolgt).
Der Versuch, die Größe eines Verzeichnisses (sowie jeder anderen Datei, die keine reguläre Datei oder ein Symlink ist) zu ermitteln, wird als Fehler behandelt.
Die nicht werfende Überladung gibt im Fehlerfall -1 zurück.
Inhalt |
[edit] Parameter
| p | - | Zu untersuchender Pfad |
| ec | - | Ausgabeparameter für die Fehlerberichterstattung in der nicht auslösenden Überladung |
[edit] Rückgabewert
Die Größe der Datei in Bytes.
[edit] Ausnahmen
Die Überladung, die keinen Parameter error_code& verwendet, wirft filesystem_error bei zugrundeliegenden Betriebssystem-API-Fehlern, konstruiert mit p als erstem Argument und dem Betriebssystem-Fehlercode als Fehlercode-Argument. std::bad_alloc kann geworfen werden, wenn die Speicherbelegung fehlschlägt. Die Überladung, die einen Parameter error_code& verwendet, setzt diesen auf den Betriebssystem-API-Fehlercode, wenn ein Betriebssystem-API-Aufruf fehlschlägt, und führt ec.clear() aus, wenn keine Fehler auftreten. Diese Überladung hatnoexcept-Spezifikation:
noexcept
[edit] Beispiel
Führen Sie diesen Code aus
#include <experimental/filesystem> #include <fstream> #include <iostream> namespace fs = std::experimental::filesystem; int main() { fs::path p = fs::current_path() / "example.bin"; std::ofstream(p).put('a'); // create file of size 1 std::cout << "File size = " << fs::file_size(p) << '\n'; fs::remove(p); try { fs::file_size("/dev"); // attempt to get size of a directory } catch (fs::filesystem_error& e) { std::cout << e.what() << '\n'; } }
Mögliche Ausgabe
File size = 1 filesystem error: cannot get file size: Is a directory [/dev]
[edit] Siehe auch
| ändert die Größe einer regulären Datei durch Abschneiden oder Auffüllen mit Nullen (Funktion) | |
| ermittelt den verfügbaren freien Speicherplatz auf dem Dateisystem (Funktion) |