<experimental/filesystem> wyliczenia

Important

Nagłówek <experimental/filesystem> i std::experimental::filesystem przestrzeń nazw dostarczyły wstępnie standardowej implementacji specyfikacji technicznej systemu plików (TS). Ta dokumentacja jest przechowywana dla kodu napisanego w oryginalnej implementacji systemu plików MSVC, która została usunięta, począwszy od wersji 14.51 MSVC. W przypadku nowego kodu użyj nagłówka std::filesystem języka C++17 <filesystem> i przestrzeni nazw. Aby zapoznać się ze standardowymi odpowiednikami tych wyliczenia, zobacz <filesystem> wyliczenia.

Ten artykuł dokumentuje wyliczenia w historycznej implementacji przedstandardowej std::experimental::filesystem .

Wymagania

Nagłówek:<experimental/filesystem>

Przestrzeń nazw: std::experimental::filesystem

copy_options

Wyliczenie wartości maski bitów używanej z funkcjami kopiowania i copy_file do określania zachowania.

Składnia

enum class copy_options {
   none = 0,
   skip_existing = 1,
   overwrite_existing = 2,
   update_existing = 4,
   recursive = 8,
   copy_symlinks = 16,
   skip_symlinks = 32,
   directories_only = 64,
   create_symlinks = 128,
   create_hard_links = 256
};

Values

Nazwa Opis
none Wykonaj domyślne zachowanie dla operacji.
skip_existing Nie należy kopiować, jeśli plik już istnieje, nie zgłaszaj błędu.
overwrite_existing Zastąp plik, jeśli już istnieje.
update_existing Zastąp plik, jeśli już istnieje i jest starszy niż zastąpienie.
recursive Rekursywnie kopiuj podkatalogi i ich zawartość.
copy_symlinks Skopiuj łącza symboliczne jako łącza symboliczne zamiast kopiować pliki, do których wskazują.
skip_symlinks Ignoruj łącza symboliczne.
directories_only Iteruj tylko katalogi, ignoruj pliki.
create_symlinks Utwórz łącza symboliczne zamiast kopiować pliki. Ścieżka bezwzględna musi być używana jako ścieżka źródłowa, chyba że miejsce docelowe jest bieżącym katalogiem.
create_hard_links Utwórz twarde linki zamiast kopiować pliki.

directory_options

Wyliczenie maski bitowej, które kontroluje sposób obsługi iteracji katalogów symbolicznych linków do katalogów.

Składnia

enum class directory_options {
   none = 0,
   follow_directory_symlink = 1
};

Values

Nazwa Opis
none Zachowanie domyślne: nie śledź linków symbolicznych do katalogów.
follow_directory_symlink Skorzystaj z linków symbolicznych do katalogów, a nie pomijania ich.

file_type

Wyliczenie typów plików.

Składnia

enum class file_type {
   not_found = -1,
   none = 0,
    regular,
    directory,
    symlink,
    block,
    character,
    fifo,
    socket,
    unknown
};

Bazowe wartości całkowite tych modułów wyliczania nie są stałe, więc nie zależą od określonych wartości liczbowych.

Values

Nazwa Opis
none Typ pliku nie został jeszcze oceniony lub wystąpił błąd podczas jego oceny.
not_found Nie można odnaleźć pliku.
regular Zwykły plik.
directory Katalog.
symlink Łącze symboliczne.
block Plik specjalny bloku. (Nieużytne w Windows).
character Plik specjalny znaków. (Nieużytne w Windows).
fifo Plik FIFO lub potoku. (Nieużytne w Windows).
socket Gniazdo. (Nieużytne w Windows).
unknown Plik istnieje, ale nie można określić jego typu.

perms

Maska bitowa wylicza bitów uprawnień pliku wraz z flagami sterowania używanymi permissions przez funkcję do decydowania o sposobie stosowania tych bitów. W Windows obsługiwane wartości uprawnień są zasadniczo "tylko do odczytu" i all. W przypadku pliku tylko do odczytu żaden z *_write bitów nie jest ustawiony. all W przeciwnym razie bit (0777) jest ustawiony.

Składnia

enum class perms {// names for permissions
   none = 0,
   owner_read = 0400,  // S_IRUSR
   owner_write = 0200, // S_IWUSR
   owner_exec = 0100,  // S_IXUSR
   owner_all = 0700,   // S_IRWXU
   group_read = 040,   // S_IRGRP
   group_write = 020,  // S_IWGRP
   group_exec = 010,   // S_IXGRP
   group_all = 070,    // S_IRWXG
   others_read = 04,   // S_IROTH
   others_write = 02,  // S_IWOTH
   others_exec = 01,   // S_IXOTH
   others_all = 07,    // S_IRWXO
   all = 0777,
   set_uid = 04000,    // S_ISUID
   set_gid = 02000,    // S_ISGID
   sticky_bit = 01000, // S_ISVTX
   mask = 07777,
   unknown = 0xFFFF,
   add_perms = 0x10000,       // control flag
   remove_perms = 0x20000,    // control flag
   resolve_symlinks = 0x40000 // control flag
};

Flagi kontrolek

W przeciwieństwie do implementacji języka C++17 std::filesystem , która steruje permissions funkcją przy użyciu oddzielnego perm_options wyliczenia, wstępniestandardowa implementacja TS niesie ze sobą flagi perms sterowania.

Nazwa Opis
add_perms Dodaj określone bity uprawnień do bieżących uprawnień pliku zamiast ich zastępowania.
remove_perms Usuń określone bity uprawnień z bieżących uprawnień pliku.
resolve_symlinks Rozwiąż łącza symboliczne, aby zmiana uprawnień dotyczyła pliku docelowego, a nie łącza.

Zobacz także

<experimental/filesystem>
<experimental/filesystem>, funkcje
<experimental/filesystem> operatory