<experimental/filesystem> enumeraciones

Importante

El <experimental/filesystem> encabezado y el std::experimental::filesystem espacio de nombres proporcionaron una implementación prestadard de la Especificación técnica del sistema de archivos (TS). Esta documentación se conserva para el código escrito en la implementación original del sistema de archivos de MSVC, que se quitó a partir de la versión 14.51 de MSVC. Para el nuevo código, use el encabezado C++17 <filesystem> y el std::filesystem espacio de nombres en su lugar. Para conocer los equivalentes estándar de estas enumeraciones, vea <filesystem> enumeraciones.

En este artículo se documentan las enumeraciones de la implementación histórica de prestandard std::experimental::filesystem .

Requisitos

Encabezado: <experimental/filesystem>

Espacio de nombres:std::experimental::filesystem

copy_options

Enumeración de valores de máscara de bits que se usan con funciones copy y copy_file para especificar el comportamiento.

Sintaxis

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 Description
none Realice el comportamiento predeterminado de la operación.
skip_existing No copie si el archivo ya existe, no notifique un error.
overwrite_existing Sobrescriba el archivo si ya existe.
update_existing Sobrescriba el archivo si ya existe y es anterior al reemplazo.
recursive Copie de forma recursiva los subdirectorios y su contenido.
copy_symlinks Copie vínculos simbólicos como vínculos simbólicos, en lugar de copiar los archivos a los que apuntan.
skip_symlinks Omitir vínculos simbólicos.
directories_only Solo recorre en iteración los directorios, omita los archivos.
create_symlinks Crear vínculos simbólicos en lugar de copiar archivos. Se debe usar una ruta de acceso absoluta como ruta de acceso de origen a menos que el destino sea el directorio actual.
create_hard_links Crear vínculos físicos en lugar de copiar archivos.

directory_options

Enumeración de máscara de bits que controla cómo controla la iteración de directorios vínculos simbólicos a directorios.

Sintaxis

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

Values

Name Description
none Comportamiento predeterminado: no siga vínculos simbólicos a directorios.
follow_directory_symlink Siga vínculos simbólicos a directorios en lugar de omitirlos.

file_type

Enumeración para tipos de archivo.

Sintaxis

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

Los valores enteros subyacentes de estos enumeradores no son fijos, por lo que no dependen de valores numéricos específicos.

Values

Name Description
none El tipo de archivo aún no se ha evaluado o se produjo un error al evaluarlo.
not_found No se encontró el archivo.
regular Un archivo normal.
directory un directorio.
symlink Un vínculo simbólico.
block Un archivo especial de bloque. (No se usa en Windows).
character Un archivo especial de caracteres. (No se usa en Windows).
fifo Un archivo FIFO o de canalización. (No se usa en Windows).
socket Socket. (No se usa en Windows).
unknown El archivo existe, pero su tipo no se puede determinar.

perms

Enumeración de máscara de bits de bits de permisos de archivo junto con las marcas de control que usa la permissions función para decidir cómo aplicar esos bits. En Windows, los valores de permisos admitidos son básicamente "de solo lectura" y all. Para un archivo de solo lectura, no se establece ninguno de los *_write bits. De lo contrario, se establece el all bit (0777).

Sintaxis

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

Marcas de control

A diferencia de la implementación de C++17 std::filesystem , que controla la permissions función con una enumeración independiente perm_options , la implementación de TS prestadard lleva las marcas de control en perms sí mismas.

Name Description
add_perms Agregue los bits de permiso especificados a los permisos actuales del archivo en lugar de reemplazarlos.
remove_perms Quite los bits de permiso especificados de los permisos actuales del archivo.
resolve_symlinks Resuelva vínculos simbólicos para que el cambio de permisos se aplique al archivo de destino en lugar del vínculo.

Consulte también

<experimental/filesystem>
Funciones <experimental/filesystem>
<experimental/filesystem> operadores