Enumerações <filesystem>

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

Note

Esta página documenta as enumerações C++17 std::filesystem . Para obter as enumerações pré-existentes históricas fornecidas pelo <experimental/filesystem>MSVC, consulte <experimental/filesystem> enumerações.

Requisitos

Cabeçalho:<filesystem>

Namespace:std::filesystem

copy_options

Uma enumeração de valores de máscara de bits que copy você usa 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
};

Valores

Nome Descrição
none Executa o comportamento padrão da operação.
skip_existing Não copia se o arquivo já existir, não relata um erro.
overwrite_existing Substitui o arquivo se ele já existir.
update_existing Substitui o arquivo se ele já existir e for mais antigo que a substituição.
recursive Copia recursivamente subdiretórios e seus conteúdos.
copy_symlinks Copia links simbólicos como links simbólicos, em vez de copiar os arquivos para os quais eles apontam.
skip_symlinks Ignora links simbólicos.
directories_only Iterar somente diretórios, ignora arquivos.
create_symlinks Faz links simbólicos em vez de copiar arquivos. Um caminho absoluto deve ser usado como o caminho de origem, a menos que o destino seja o diretório atual.
create_hard_links Faz links físicos em vez de copiar arquivos.

directory_options

Uma enumeração bitmask que controla como a iteração de diretório lida com links simbólicos para diretórios e erros negados por permissão.

Sintaxe

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

Valores

Nome Descrição
none Comportamento padrão: não siga links simbólicos para diretórios e trate a permissão negada como um erro.
follow_directory_symlink Siga links simbólicos para diretórios em vez de ignorá-los.
skip_permission_denied Ignore silenciosamente os diretórios que, de outra forma, resultariam em um erro negado por permissão.

file_type

Uma enumeração de tipos de arquivo.

Sintaxe

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

O padrão C++ não corrige os valores inteiros subjacentes desses enumeradores, portanto, não depende de valores numéricos específicos.

Valores

Nome Descrição
none O tipo de arquivo ainda não foi avaliado ou ocorreu um erro ao avaliá-lo.
not_found O arquivo não foi encontrado.
regular Um arquivo normal.
directory Um diretório.
symlink Um link simbólico.
block Um arquivo especial de bloco. (Não usado em Windows.)
character Um arquivo especial de caractere. (Não usado em Windows.)
fifo Um fifo ou arquivo de pipe. (Não usado em Windows.)
socket Um soquete. (Não usado em Windows.)
unknown O arquivo existe, mas seu tipo não pode ser determinado.

perm_options

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

Sintaxe

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

Valores

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

Perms

Uma enumeração bitmask de bits de permissão de arquivo. Em Windows, os valores com suporte são essencialmente "somente leitura" e all. Para um arquivo somente 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
};

Confira também

Referência de Arquivos de Cabeçalho
<filesystem>