std::filesystem::copy_options
提供: cppreference.com
< cpp | filesystem
ヘッダ <filesystem> で定義 | ||
enumclass copy_options { none =/* unspecified */, | (C++17以上) | |
この型は copy() および copy_file() 関数の動作を制御するための利用可能なオプションを表します。
copy_options
は BitmaskType の要件を満たします (つまり、この型に対するビット単位の演算子 operator&, operator|, operator^, operator~, operator&=, operator|=, operator^= が定義されます)。
[編集]メンバ定数
それぞれのグループ内で高々1つのコピーオプションだけが選択でき、さもなければ copy 関数の動作は未定義です。
メンバ定数 | 意味 |
---|---|
ファイルがすでに存在するとき copy_file() を制御するオプション | |
none | エラーを報告します (デフォルトの動作)。 |
skip_existing | エラーを報告せず、既存のファイルを維持します。 |
overwrite_existing | 既存のファイルを置き換えます。 |
update_existing | 既存のファイルがコピーするファイルよりも古い場合に限り、既存のファイルを置き換えます。 |
サブディレクトリに対する copy() の効果を制御するオプション | |
none | サブディレクトリをスキップします (デフォルトの動作)。 |
recursive | サブディレクトリとその内容を再帰的にコピーします。 |
シンボリックリンクに対する copy() の効果を制御するオプション | |
none | シンボリックリンクを辿ります (デフォルトの動作)。 |
copy_symlinks | 指す先のファイルではなく、シンボリックリンクをシンボリックリンクとしてコピーします。 |
skip_symlinks | シンボリックリンクを無視します。 |
copy() が行うコピーの種類を制御するオプション | |
none | ファイルの内容をコピーします (デフォルトの動作)。 |
directories_only | ディレクトリ構造をコピーしますが、ディレクトリでないファイルは一切コピーしません。 |
create_symlinks | ファイルのコピーを作成する代わりに、元のファイルを指すシンボリックリンクを作成します。 ノート: コピー先のパスがカレントディレクトリでない限り、コピー元のパスは絶対パスでなければなりません。 |
create_hard_links | ファイルのコピーを作成する代わりに、元と同じファイルに解決されるハードリンクを作成します。 |
[編集]例
Run this code
#include <cstdlib>#include <iostream>#include <fstream>#include <filesystem>namespace fs = std::filesystem; int main(){ fs::create_directories("sandbox/dir/subdir");std::ofstream("sandbox/file1.txt").put('a'); fs::copy("sandbox/file1.txt", "sandbox/file2.txt");// ファイルをコピーします。 fs::copy("sandbox/dir", "sandbox/dir2");// ディレクトリをコピーします (再帰しません)。constauto copyOptions = fs::copy_options::update_existing| fs::copy_options::recursive| fs::copy_options::directories_only; fs::copy("sandbox", "sandbox_copy", copyOptions);static_cast<void>(std::system("tree")); fs::remove_all("sandbox"); fs::remove_all("sandbox_copy");}
出力例:
. ├── sandbox │ ├── dir │ │ └── subdir │ ├── dir2 │ ├── file1.txt │ └── file2.txt └── sandbox_copy ├── dir │ └── subdir └── dir2 8 directories, 2 files
[編集]関連項目
(C++17) | ファイルまたはディレクトリをコピーします (関数) |
(C++17) | ファイルの内容をコピーします (関数) |