<experimental/filesystem> enumerazioni

Importante

L'intestazione <experimental/filesystem> e lo std::experimental::filesystem spazio dei nomi hanno fornito un'implementazione prendard della specifica tecnica del file system . Questa documentazione viene conservata per il codice scritto nell'implementazione originale del file system di MSVC, che è stata rimossa a partire da MSVC versione 14.51. Per il nuovo codice, usare invece l'intestazione C++17 <filesystem> e lo std::filesystem spazio dei nomi . Per gli equivalenti standard di queste enumerazioni, vedere <filesystem> enumerazioni.

Questo articolo documenta le enumerazioni nell'implementazione di prendard cronologica std::experimental::filesystem .

Requirements

Intestazione:<experimental/filesystem>

Spazio dei nomi:std::experimental::filesystem

copy_options

Enumerazione di valori della maschera di bit utilizzata con le funzioni copy e copy_file per specificare il comportamento.

Sintassi

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

Name Descrizione
none Eseguire il comportamento predefinito per l'operazione.
skip_existing Non copiare se il file esiste già, non segnalare un errore.
overwrite_existing Sovrascrivere il file se esiste già.
update_existing Sovrascrivere il file se esiste già ed è precedente alla sostituzione.
recursive Copiare in modo ricorsivo le sottodirectory e il relativo contenuto.
copy_symlinks Copiare i collegamenti simbolici come collegamenti simbolici, invece di copiare i file a cui puntano.
skip_symlinks Ignorare i collegamenti simbolici.
directories_only Eseguire l'iterazione solo sulle directory, ignorare i file.
create_symlinks Creare collegamenti simbolici invece di copiare i file. Un percorso assoluto deve essere usato come percorso di origine, a meno che la destinazione non sia la directory corrente.
create_hard_links Creare collegamenti rigidi invece di copiare i file.

directory_options

Enumerazione maschera di bit che controlla il modo in cui l'iterazione della directory gestisce i collegamenti simbolici alle directory.

Sintassi

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

Values

Name Descrizione
none Comportamento predefinito: non seguire i collegamenti simbolici alle directory.
follow_directory_symlink Seguire i collegamenti simbolici alle directory anziché ignorarli.

file_type

Enumerazione per i tipi di file.

Sintassi

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

I valori integer sottostanti di questi enumeratori non sono fissi, quindi non dipendono da valori numerici specifici.

Values

Name Descrizione
none Il tipo di file non è ancora stato valutato o si è verificato un errore durante la valutazione.
not_found Il file non è stato trovato.
regular File normale.
directory Una directory.
symlink Collegamento simbolico.
block Un file speciale a blocchi. Non usato in Windows.
character Un file speciale di caratteri. Non usato in Windows.
fifo Un file FIFO o pipe. Non usato in Windows.
socket Socket. Non usato in Windows.
unknown Il file esiste, ma non è possibile determinarne il tipo.

perms

Enumerazione maschera di bit dei bit dei bit di autorizzazione file insieme ai flag di controllo usati dalla permissions funzione per decidere come applicare tali bit. In Windows, i valori di autorizzazione supportati sono essenzialmente "di sola lettura" e all. Per un file di sola lettura, nessuno dei *_write bit viene impostato. In caso contrario, il all bit (0777) è impostato.

Sintassi

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
};

Flag di controllo

A differenza dell'implementazione di C++17 std::filesystem , che controlla la permissions funzione con un'enumerazione separata perm_options , l'implementazione TS prendard porta i flag di controllo in perms se stesso.

Name Descrizione
add_perms Aggiungere i bit di autorizzazione specificati alle autorizzazioni correnti del file anziché sostituirle.
remove_perms Rimuovere i bit di autorizzazione specificati dalle autorizzazioni correnti del file.
resolve_symlinks Risolvere i collegamenti simbolici in modo che la modifica dell'autorizzazione venga applicata al file di destinazione anziché al collegamento.

Vedere anche

<experimental/filesystem>
Funzioni <experimental/filesystem>
<experimental/filesystem> operatori