Klasa directory_entry

Opisuje obiekt zwracany przez wyłudanie obiektu directory_iterator lub recursive_directory_iterator. Zawija directory_entry element path i, jako optymalizację, może buforować atrybuty plików, które są uzyskiwane podczas iterowania katalogu.

Składnia

class directory_entry;

Uwagi

Obiekt directory_entry przechowuje pathobiekt . W ramach optymalizacji może również buforować atrybuty i stan pliku, do którego odwołuje się ścieżka. Buforowane dane są wypełniane po utworzeniu wpisu przez iterator katalogu lub wywołaniu metody refresh. Obserwatorzy, tacy jak file_size, last_write_time, statusi różne is_* predykaty, zwracają buforowane dane, gdy są dostępne; w przeciwnym razie wysyłają zapytania do systemu plików.

Aby uzyskać więcej informacji i przykłady kodu, zobacz Nawigacja systemu plików (C++).

Konstruktory

Konstruktor opis
directory_entry Tworzy element directory_entry.

Funkcje składowe

Funkcja składowa opis
assign Zastępuje przechowywaną ścieżkę i odświeża buforowane atrybuty.
exists Sprawdza, czy wpis odwołuje się do istniejącego pliku.
file_size Pobiera rozmiar pliku, w bajtach, do których odwołuje się plik.
hard_link_count Pobiera liczbę twardych linków do przywoływnego pliku.
is_block_file Sprawdza, czy przywołyny plik jest plikiem specjalnym bloku.
is_character_file Sprawdza, czy przywołyny plik jest specjalnym plikiem znaków.
is_directory Sprawdza, czy przywołyny plik jest katalogiem.
is_fifo Sprawdza, czy przywołyny plik jest nazwanym potokiem (FIFO).
is_other Sprawdza, czy przywołyny plik jest innym plikiem.
is_regular_file Sprawdza, czy przywoływalny plik jest zwykłym plikiem.
is_socket Sprawdza, czy przywołyny plik jest gniazdem.
is_symlink Sprawdza, czy przywołyny plik jest łączem symbolicznym.
last_write_time Pobiera czas ostatniej modyfikacji danych przywoływałego pliku.
path Zwraca przechowywaną ścieżkę.
refresh Odświeża buforowane atrybuty pliku.
replace_filename Zastępuje nazwę pliku przechowywanej ścieżki i odświeża buforowane atrybuty.
status Pobiera stan przywoływnego pliku, wykonując linki symboliczne.
symlink_status Pobiera stan przywołytowanego pliku bez użycia linków symbolicznych.

Operatory

Operator opis
operator= Przypisuje do .directory_entry
operator const path& Zwraca przechowywaną ścieżkę.
operator== Sprawdza, czy dwa directory_entry obiekty są równe.
operator<=> Wykonuje trzykierunkowe porównanie dwóch directory_entry obiektów. (C++20)
operator!= Sprawdza, czy dwa directory_entry obiekty są nierówne. Jawny element członkowski w języku C++17; obsługiwane przez przepisane porównania w języku C++20 lub nowszym.
operator< Sprawdza, czy directory_entry sortowanie przed innym directory_entryelementem . Jawny element członkowski w języku C++17; obsługiwane przez przepisane porównania w języku C++20 lub nowszym.
operator<= Sprawdza, czy directory_entry sortowanie jest wcześniejsze, czy równe innemu directory_entryelementowi . Jawny element członkowski w języku C++17; obsługiwane przez przepisane porównania w języku C++20 lub nowszym.
operator> Sprawdza, czy sortowanie po innej directory_entrykontrolce directory_entry . Jawny element członkowski w języku C++17; obsługiwane przez przepisane porównania w języku C++20 lub nowszym.
operator>= Sprawdza, czy directory_entry sortowanie jest po lub równe innemu directory_entry. Jawny element członkowski w języku C++17; obsługiwane przez przepisane porównania w języku C++20 lub nowszym.

Wymagania

Nagłówek:<filesystem>

Przestrzeń nazw: std::filesystem

directory_entry

Tworzy element directory_entry.

directory_entry() noexcept = default;
directory_entry(const directory_entry&) = default;
directory_entry(directory_entry&&) noexcept = default;

explicit directory_entry(const std::filesystem::path& p);
directory_entry(const std::filesystem::path& p, std::error_code& ec);

~directory_entry();

Parametry

p
Ścieżka do pliku, do którego odwołuje się wpis.

Ec
Kod błędu wyjściowego dla operacji.

Uwagi

Konstruktory domyślne, kopiowania i przenoszenia zachowują się zgodnie z oczekiwaniami. Konstruktory, które przyjmują path magazyn p , a następnie wywołać w refresh celu wypełnienia buforowanych atrybutów. Przeciążenie, które pobiera error_code błędy w ec zamiast zgłaszać, i czyści przechowywaną ścieżkę, jeśli odświeżanie zakończy się niepowodzeniem.

operator =

Przypisuje do .directory_entry

directory_entry& operator=(const directory_entry&) = default;
directory_entry& operator=(directory_entry&&) noexcept = default;

Parametry

Prawy
Element directory_entry do skopiowania lub przeniesienia do tego elementu directory_entry.

Uwagi

Domyślne operatory przypisania zachowują się zgodnie z oczekiwaniami.

przypisać

Zastępuje przechowywaną ścieżkę i odświeża buforowane atrybuty.

void assign(const std::filesystem::path& p);
void assign(const std::filesystem::path& p, std::error_code& ec);

Parametry

p
Nowa ścieżka do przechowywania.

Ec
Kod błędu wyjściowego dla operacji.

Uwagi

Zamienia przechowywaną ścieżkę na p, a następnie wywołuje refresh metodę w celu zaktualizowania buforowanych atrybutów. Przeciążenie, które pobiera error_code błędy w ec zamiast zgłaszać.

replace_filename

Zastępuje nazwę pliku przechowywanej ścieżki i odświeża buforowane atrybuty.

void replace_filename(const std::filesystem::path& p);
void replace_filename(const std::filesystem::path& p, std::error_code& ec);

Parametry

p
Nazwa pliku zastępczego.

Ec
Kod błędu wyjściowego dla operacji.

Uwagi

Zastępuje składnik nazwy pliku przechowywanej ścieżki ciągiem p, tak jak w path().replace_filename(p)przypadku ciągu , a następnie wywołuje metodę refresh. Przeciążenie, które pobiera error_code błędy w ec zamiast zgłaszać.

odświeżyć

Odświeża buforowane atrybuty pliku.

void refresh();
void refresh(std::error_code& ec) noexcept;

Parametry

Ec
Kod błędu wyjściowego dla operacji.

Uwagi

Odczytuje atrybuty pliku, do którego odwołuje się przechowywana ścieżka, i buforuje je w pliku directory_entry. Wywołaj metodę refresh , aby zaktualizować buforowane dane po zmianie pliku, do których odwołuje się odwołanie. Przeciążenie, które pobiera error_code błędy w ec zamiast zgłaszać.

ścieżka

Zwraca przechowywaną ścieżkę.

const std::filesystem::path& path() const noexcept;

operator const path &

Zwraca przechowywaną ścieżkę.

operator const std::filesystem::path&() const noexcept;

istnieje

Sprawdza, czy wpis odwołuje się do istniejącego pliku.

bool exists() const;
bool exists(std::error_code& ec) const noexcept;

Parametry

Ec
Kod błędu wyjściowego dla operacji.

Wartość zwracana

true jeśli ścieżka przechowywana odwołuje się do istniejącego pliku; w przeciwnym razie, false. Odpowiednik wywołania metody filesystem::exists(status()).

is_block_file

Sprawdza, czy przywołyny plik jest plikiem specjalnym bloku.

bool is_block_file() const;
bool is_block_file(std::error_code& ec) const noexcept;

Parametry

Ec
Kod błędu wyjściowego dla operacji.

Wartość zwracana

true jeśli przywoływana plik jest plikiem specjalnym bloku; w przeciwnym razie, false. Ta funkcja zawsze zwraca false Windows.

is_character_file

Sprawdza, czy przywołyny plik jest specjalnym plikiem znaków.

bool is_character_file() const;
bool is_character_file(std::error_code& ec) const noexcept;

Parametry

Ec
Kod błędu wyjściowego dla operacji.

Wartość zwracana

true jeśli przywoływana plik jest plikiem specjalnym znaku; w przeciwnym razie, false. Ta funkcja zawsze zwraca false Windows.

is_directory

Sprawdza, czy przywołyny plik jest katalogiem.

bool is_directory() const;
bool is_directory(std::error_code& ec) const noexcept;

Parametry

Ec
Kod błędu wyjściowego dla operacji.

Wartość zwracana

true jeśli przywoływana plik jest katalogiem; w przeciwnym razie, false. Odpowiednik wywołania metody filesystem::is_directory(status()).

is_fifo

Sprawdza, czy przywołyny plik jest nazwanym potokiem (FIFO).

bool is_fifo() const;
bool is_fifo(std::error_code& ec) const noexcept;

Parametry

Ec
Kod błędu wyjściowego dla operacji.

Wartość zwracana

true jeśli przywoływana plik jest fiFO; w przeciwnym razie, false. Ta funkcja zawsze zwraca false Windows.

is_other

Sprawdza, czy przywołyny plik jest innym plikiem.

bool is_other() const;
bool is_other(std::error_code& ec) const noexcept;

Parametry

Ec
Kod błędu wyjściowego dla operacji.

Wartość zwracana

true jeśli przywoływana plik istnieje, ale nie jest zwykłym plikiem, katalogiem ani łączem symbolicznym; w przeciwnym razie, false. Odpowiednik wywołania metody filesystem::is_other(status()).

is_regular_file

Sprawdza, czy przywoływalny plik jest zwykłym plikiem.

bool is_regular_file() const;
bool is_regular_file(std::error_code& ec) const noexcept;

Parametry

Ec
Kod błędu wyjściowego dla operacji.

Wartość zwracana

true jeśli przywoływana plik jest zwykłym plikiem; w przeciwnym razie, false. Odpowiednik wywołania metody filesystem::is_regular_file(status()).

is_socket

Sprawdza, czy przywołyny plik jest gniazdem.

bool is_socket() const;
bool is_socket(std::error_code& ec) const noexcept;

Parametry

Ec
Kod błędu wyjściowego dla operacji.

Wartość zwracana

true jeśli przywoływana plik jest gniazdem; w przeciwnym razie, false. Ta funkcja zawsze zwraca false Windows.

Sprawdza, czy przywołyny plik jest łączem symbolicznym.

bool is_symlink() const;
bool is_symlink(std::error_code& ec) const noexcept;

Parametry

Ec
Kod błędu wyjściowego dla operacji.

Wartość zwracana

true jeśli przywoływana plik jest łączem symbolicznym; w przeciwnym razie, false. Odpowiednik wywołania metody filesystem::is_symlink(symlink_status()).

rozmiar pliku

Pobiera rozmiar pliku, w bajtach, do których odwołuje się plik.

uintmax_t file_size() const;
uintmax_t file_size(std::error_code& ec) const noexcept;

Parametry

Ec
Kod błędu wyjściowego dla operacji.

Wartość zwracana

Rozmiar pliku, w bajtach, do których się odwołuje, tak jakby był to .filesystem::file_size(path()) Używa buforowanych danych, gdy są dostępne.

Pobiera liczbę twardych linków do przywoływnego pliku.

uintmax_t hard_link_count() const;
uintmax_t hard_link_count(std::error_code& ec) const noexcept;

Parametry

Ec
Kod błędu wyjściowego dla operacji.

Wartość zwracana

Liczba twardych linków do pliku, do których odwołuje się odwołanie, tak jak w przypadku ciągu filesystem::hard_link_count(path()). Używa buforowanych danych, gdy są dostępne.

last_write_time

Pobiera czas ostatniej modyfikacji danych przywoływałego pliku.

file_time_type last_write_time() const;
file_time_type last_write_time(std::error_code& ec) const noexcept;

Parametry

Ec
Kod błędu wyjściowego dla operacji.

Wartość zwracana

Czas ostatniej modyfikacji danych przywoływałego pliku, tak jakby był to .filesystem::last_write_time(path()) Używa buforowanych danych, gdy są dostępne.

stan

Pobiera stan przywoływnego pliku, wykonując linki symboliczne.

file_status status() const;
file_status status(std::error_code& ec) const noexcept;

Parametry

Ec
Kod błędu wyjściowego dla operacji.

Wartość zwracana

Stan pliku, do których odwołuje się odwołanie, tak jak w przypadku polecenia filesystem::status(path()). Używa buforowanych danych, gdy są dostępne.

Pobiera stan przywołytowanego pliku bez użycia linków symbolicznych.

file_status symlink_status() const;
file_status symlink_status(std::error_code& ec) const noexcept;

Parametry

Ec
Kod błędu wyjściowego dla operacji.

Wartość zwracana

Stan symetrii pliku, do których odwołuje się odwołanie, tak jak w przypadku polecenia filesystem::symlink_status(path()). Używa buforowanych danych, gdy są dostępne.

operator==

Sprawdza, czy dwa directory_entry obiekty są równe.

bool operator==(const directory_entry& right) const noexcept;

Parametry

Prawy
Porównanie directory_entry .

Wartość zwracana

Zwraca wartość path() == right.path().

operator<=>

Wykonuje trzykierunkowe porównanie dwóch directory_entry obiektów.

std::strong_ordering operator<=>(const directory_entry& right) const noexcept; // C++20

Parametry

Prawy
Porównanie directory_entry .

Wartość zwracana

Zwraca wartość path() <=> right.path().

Uwagi

Dostępne w języku C++20 lub nowszym. Kompilator ponownie zapisuje porównania, które używają operator<operatora , operator<=, operator>lub operator>= . Ponowne zapisywanie porównań używanych operator!= do używania polecenia operator==.

operator!=

Sprawdza, czy dwa directory_entry obiekty są nierówne.

bool operator!=(const directory_entry& right) const noexcept; // C++17

Parametry

Prawy
Porównanie directory_entry .

Wartość zwracana

Zwraca wartość !(*this == right).

Uwagi

W języku C++17 ten operator jest jawnie zadeklarowaną funkcją składową. W języku C++20 lub nowszym wyrażenie, które używaoperator!=, zostanie przepisane do użycia .operator==

operator<

Sprawdza, czy directory_entry sortowanie przed innym directory_entryelementem .

bool operator<(const directory_entry& right) const noexcept; // C++17

Parametry

Prawy
Porównanie directory_entry .

Wartość zwracana

Zwraca wartość path() < right.path().

Uwagi

W języku C++17 ten operator jest jawnie zadeklarowaną funkcją składową. W języku C++20 lub nowszym wyrażenie, które używaoperator<, zostanie przepisane do użycia .operator<=>

operator<=

Sprawdza, czy directory_entry sortowanie jest wcześniejsze, czy równe innemu directory_entryelementowi .

bool operator<=(const directory_entry& right) const noexcept; // C++17

Parametry

Prawy
Porównanie directory_entry .

Wartość zwracana

Zwraca wartość !(right < *this).

Uwagi

W języku C++17 ten operator jest jawnie zadeklarowaną funkcją składową. W języku C++20 lub nowszym wyrażenie, które używaoperator<=, zostanie przepisane do użycia .operator<=>

operator>

Sprawdza, czy sortowanie po innej directory_entrykontrolce directory_entry .

bool operator>(const directory_entry& right) const noexcept; // C++17

Parametry

Prawy
Porównanie directory_entry .

Wartość zwracana

Zwraca wartość right < *this.

Uwagi

W języku C++17 ten operator jest jawnie zadeklarowaną funkcją składową. W języku C++20 lub nowszym wyrażenie, które używaoperator>, zostanie przepisane do użycia .operator<=>

operator>=

Sprawdza, czy directory_entry sortowanie jest po lub równe innemu directory_entry.

bool operator>=(const directory_entry& right) const noexcept; // C++17

Parametry

Prawy
Porównanie directory_entry .

Wartość zwracana

Zwraca wartość !(*this < right).

Uwagi

W języku C++17 ten operator jest jawnie zadeklarowaną funkcją składową. W języku C++20 lub nowszym wyrażenie, które używaoperator>=, zostanie przepisane do użycia .operator<=>

Zobacz też

Odwołanie do plików nagłówka
<filesystem>
Nawigacja systemu plików (C++)