<filesystem> Enumerações

Este artigo documenta as enumerações na implementação C++17 std::filesystem do <filesystem> cabeçalho.

Observação

Esta página documenta as enumerações em C++17 std::filesystem . Para as enumerações históricas pré-padrão que a MSVC forneceu em <experimental/filesystem>, veja<experimental/filesystem> enumerações.

Requisitos

Cabeçalho:<filesystem>

Espaço de nomes:std::filesystem

copy_options

Uma enumeração dos valores da máscara de bits que usas com copy e copy_file funções para especificar o comportamento.

Sintaxe

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 Descrição
none Executar o comportamento padrão para a operação.
skip_existing Não copie se o ficheiro já existe, não reporte erros.
overwrite_existing Sobrescreve o ficheiro se ele já existir.
update_existing Sobrescreve o ficheiro se ele já existir e for mais antigo do que o substituto.
recursive Copie recursivamente subdiretórios e os seus conteúdos.
copy_symlinks Copie ligações simbólicas como ligações simbólicas, em vez de copiar os ficheiros para os quais apontam.
skip_symlinks Ignora ligações simbólicas.
directories_only Só iterar sobre diretórios, ignorar ficheiros.
create_symlinks Faz ligações simbólicas em vez de copiar ficheiros. Deve ser usado um caminho absoluto como caminho de origem, a menos que o destino seja o diretório atual.
create_hard_links Faz links físicos em vez de copiar ficheiros.

directory_options

Uma enumeração de máscaras de bits que controla como a iteração de diretórios lida com ligações simbólicas para diretórios e erros com permissão negada.

Sintaxe

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

Values

Name Descrição
none Comportamento padrão: não seguir links simbólicos para diretórios e tratar a permissão negada como um erro.
follow_directory_symlink Siga links simbólicos para diretórios em vez de os ignorar.
skip_permission_denied Ignora silenciosamente diretórios que, de outra forma, resultariam num erro de permissão negada.

file_type

Uma enumeração para tipos de ficheiros.

Sintaxe

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

O padrão C++ não fixa os valores inteiros subjacentes destes enumeradores, por isso não dependa de valores numéricos específicos.

Values

Name Descrição
none O tipo de ficheiro ainda não foi avaliado, ou ocorreu um erro ao avaliá-lo.
not_found O ficheiro não foi encontrado.
regular Um ficheiro normal.
directory Um diretório.
symlink Uma ligação simbólica.
block Um ficheiro especial de bloco. (Não usado no Windows.)
character Um ficheiro especial de personagem. (Não usado no Windows.)
fifo Um ficheiro FIFO ou pipe. (Não usado no Windows.)
socket Um encaixe. (Não usado no Windows.)
unknown O ficheiro existe, mas o seu tipo não pode ser determinado.

perm_options

Uma enumeração de bitmask que controla como a permissions função aplica os bits de permissões.

Sintaxe

enum class perm_options {
   replace = 1,
   add = 2,
   remove = 4,
   nofollow = 8
};

Values

Name Descrição
replace Substitua os bits de permissão do ficheiro pelas permissões especificadas.
add Adicione os bits de permissão especificados às permissões atuais do ficheiro.
remove Remova as permissões especificadas das permissões atuais do ficheiro.
nofollow Muda as permissões de um link simbólico em si, em vez do ficheiro para o qual se resolve.

permanentes

Uma enumeração bitmask dos bits de permissão do ficheiro. No Windows, os valores suportados são essencialmente "só leitura" e all. Para um ficheiro só de leitura, nenhum dos *_write bits está definido. Caso contrário, o all bit (0777) está definido.

Sintaxe

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

Ver também

de referência de arquivos de cabeçalho
<filesystem>