std::experimental::filesystem:: copy_file
|
Definido en el encabezado
<experimental/filesystem>
|
||
|
bool
copy_file
(
const
path
&
from,
const
path
&
to
)
;
bool copy_file ( const path & from, const path & to, error_code & ec ) ; |
(1) | (filesystem TS) |
|
bool
copy_file
(
const
path
&
from,
const
path
&
to, copy_options options
)
;
bool copy_file ( const path & from, const path & to, copy_options options, error_code & ec ) ; |
(2) | (filesystem TS) |
copy_options::none
utilizado como
options
.
copy_file
).
- Si el archivo de destino no existe,
-
- copia el contenido y los atributos del archivo al que from resuelve al archivo al que to resuelve (los enlaces simbólicos son seguidos).
- De lo contrario, si el archivo de destino ya existe:
-
- Si to y from son iguales según lo determinado por equivalent(from, to) , reportar un error.
- De lo contrario, si ninguna de las opciones de control de copy_file está establecida en options , reportar un error.
-
De lo contrario, si
copy_options::skip_existingestá establecido en options , no hacer nada. -
De lo contrario, si
copy_options::overwrite_existingestá establecido en options , copiar los contenidos y atributos del archivo al que from resuelve al archivo al que to resuelve. -
De lo contrario, si
copy_options::update_existingestá establecido en options , solo copiar el archivo si from es más reciente que to , según lo definido por last_write_time() .
Las sobrecargas que no lanzan excepciones retornan false si ocurre un error.
Contenidos |
Parámetros
| from | - | ruta al archivo de origen |
| to | - | ruta al archivo de destino |
| ec | - | parámetro de salida para reporte de errores en la sobrecarga no lanzadora |
Valor de retorno
true si el archivo fue copiado, false en caso contrario.
Excepciones
The overload that does not take an error_code & parameter throws filesystem_error on underlying OS API errors, constructed with from as the first argument, to as the second argument, and the OS error code as the error code argument. std:: bad_alloc may be thrown if memory allocation fails. The overload taking an error_code & parameter sets it to the OS API error code if an OS API call fails, and executes ec. clear ( ) if no errors occur. This overload hasNotas
Las funciones involucran como máximo una llamada directa o indirecta a
status(to)
(utilizada tanto para determinar si el archivo existe, como, para la opción
copy_options::update_existing
, su última hora de escritura).
Se reporta un error cuando
copy_file
se utiliza para copiar un directorio: use
copy
para eso.
copy_file
sigue enlaces simbólicos: use
copy_symlink
o
copy
con
copy_options::copy_symlinks
para eso.
Ejemplo
#include <experimental/filesystem> #include <fstream> #include <iostream> namespace fs = std::experimental::filesystem; int main() { fs::create_directory("sandbox"); std::ofstream("sandbox/file1.txt").put('a'); fs::copy_file("sandbox/file1.txt", "sandbox/file2.txt"); // ahora hay dos archivos en sandbox: std::cout << "file1.txt holds : " << std::ifstream("sandbox/file1.txt").rdbuf() << '\n'; std::cout << "file2.txt holds : " << std::ifstream("sandbox/file2.txt").rdbuf() << '\n'; // fallo al copiar directorio fs::create_directory("sandbox/abc"); try { fs::copy_file("sandbox/abc", "sandbox/def"); } catch (fs::filesystem_error& e) { std::cout << "Could not copy sandbox/abc: " << e.what() << '\n'; } fs::remove_all("sandbox"); }
Salida posible:
file1.txt holds : a file2.txt holds : a Could not copy sandbox/abc: copy_file: Is a directory: "sandbox/abc", "sandbox/def"
Véase también
|
especifica la semántica de las operaciones de copia
(enum) |
|
|
copia un enlace simbólico
(función) |
|
|
copia archivos o directorios
(función) |