Files
hustoj/web/cppreference-zh/chmhelp/cpp-filesystem-copy.html
2025-08-01 12:57:54 +08:00

281 lines
26 KiB
HTML

<!DOCTYPE html>
<html lang="zh" dir="ltr" class="client-nojs" xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh">
<head><meta http-equiv="x-ua-compatible" content="ie=edge">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>std::filesystem::copy</title>
<link rel="stylesheet" href="ext.css" />
<link rel="stylesheet" href="site_modules.css" />
</head>
<body class="mediawiki ltr sitedir-ltr ns-0 ns-subject page-cpp_filesystem_copy skin-cppreference2 action-view cpp-navbar">
<div id="cpp-content-base">
<div id="content"><a id="top"></a>
<h1 id="firstHeading" class="firstHeading"><span style="font-size:0.7em; line-height:130%">std::filesystem::</span>copy</h1>
<div id="bodyContent">
<div id="contentSub"><span class="subpages">&lt; <a href="cpp.html">cpp</a>&lrm; | <a href="cpp-filesystem.html">filesystem</a></span></div>
<div id="mw-content-text" lang="zh" dir="ltr" class="mw-content-ltr" xml:lang="zh">
<table class="t-dcl-begin">
<tbody>
<tr class="t-dsc-header">
<td>
<div>&#23450;&#20041;&#20110;&#22836;&#25991;&#20214; <code><a href="cpp-header-filesystem.html">&lt;filesystem&gt;</a></code></div>
</td>
<td></td>
<td></td>
</tr>
<tr class="t-dcl t-since-cxx17">
<td>
<div><span class="mw-geshi cpp source-cpp"><span class="kw4">void</span> copy<span class="br0">(</span> <span class="kw4">const</span> <a href="cpp-filesystem-path.html"><span class="kw2199">std::<span class="me2">filesystem</span><span class="sy4">::</span><span class="me2">path</span></span></a><span class="sy3">&amp;</span> from,<br /></span>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw4">const</span> <a href="cpp-filesystem-path.html"><span class="kw2199">std::<span class="me2">filesystem</span><span class="sy4">::</span><span class="me2">path</span></span></a><span class="sy3">&amp;</span> to <span class="br0">)</span><span class="sy4">;</span><br />
<span class="kw4">void</span> copy<span class="br0">(</span> <span class="kw4">const</span> <a href="cpp-filesystem-path.html"><span class="kw2199">std::<span class="me2">filesystem</span><span class="sy4">::</span><span class="me2">path</span></span></a><span class="sy3">&amp;</span> from,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw4">const</span> <a href="cpp-filesystem-path.html"><span class="kw2199">std::<span class="me2">filesystem</span><span class="sy4">::</span><span class="me2">path</span></span></a><span class="sy3">&amp;</span> to,<br /></p>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<a href="cpp-error-error_code.html"><span class="kw877">std::<span class="me2">error_code</span></span></a><span class="sy3">&amp;</span> ec <span class="br0">)</span><span class="sy4">;</span></div>
</td>
<td>(1)</td>
<td><span class="t-mark-rev t-since-cxx17">(C++17 &#36215;)</span></td>
</tr>
<tr class="t-dcl t-since-cxx17">
<td>
<div><span class="mw-geshi cpp source-cpp"><span class="kw4">void</span> copy<span class="br0">(</span> <span class="kw4">const</span> <a href="cpp-filesystem-path.html"><span class="kw2199">std::<span class="me2">filesystem</span><span class="sy4">::</span><span class="me2">path</span></span></a><span class="sy3">&amp;</span> from,<br /></span>
<p>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw4">const</span> <a href="cpp-filesystem-path.html"><span class="kw2199">std::<span class="me2">filesystem</span><span class="sy4">::</span><span class="me2">path</span></span></a><span class="sy3">&amp;</span> to,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<a href="cpp-filesystem-copy_options.html"><span class="kw2242">std::<span class="me2">filesystem</span><span class="sy4">::</span><span class="me2">copy_options</span></span></a> options <span class="br0">)</span><span class="sy4">;</span><br />
<span class="kw4">void</span> copy<span class="br0">(</span> <span class="kw4">const</span> <a href="cpp-filesystem-path.html"><span class="kw2199">std::<span class="me2">filesystem</span><span class="sy4">::</span><span class="me2">path</span></span></a><span class="sy3">&amp;</span> from,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="kw4">const</span> <a href="cpp-filesystem-path.html"><span class="kw2199">std::<span class="me2">filesystem</span><span class="sy4">::</span><span class="me2">path</span></span></a><span class="sy3">&amp;</span> to,<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<a href="cpp-filesystem-copy_options.html"><span class="kw2242">std::<span class="me2">filesystem</span><span class="sy4">::</span><span class="me2">copy_options</span></span></a> options,<br /></p>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<a href="cpp-error-error_code.html"><span class="kw877">std::<span class="me2">error_code</span></span></a><span class="sy3">&amp;</span> ec <span class="br0">)</span><span class="sy4">;</span></div>
</td>
<td>(2)</td>
<td><span class="t-mark-rev t-since-cxx17">(C++17 &#36215;)</span></td>
</tr>
<tr class="t-dcl-sep">
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
<p>&#22797;&#21046;&#25991;&#20214;&#19982;&#30446;&#24405;&#65292;&#24102;&#19968;&#20123;&#36873;&#39033;</p>
<div class="t-li1"><span class="t-li">1)</span> &#40664;&#35748;&#65292;&#31561;&#20215;&#20110;&#20197; <code>copy_options::none</code> &#20026;&#36873;&#39033;&#30340; <span class="t-v">(2)</span></div>
<div class="t-li1"><span class="t-li">2)</span> &#22797;&#21046;&#25991;&#20214;&#25110;&#30446;&#24405; <code>from</code> &#21040;&#25991;&#20214;&#25110;&#30446;&#24405; <code>to</code> &#65292;&#20351;&#29992; <code>options</code> &#25152;&#25351;&#23450;&#30340;&#22797;&#21046;&#36873;&#39033;&#12290;&#33509; <code>options</code> &#20013;&#23384;&#22312; <a href="cpp-filesystem-copy_options.html">copy_options</a> &#20219;&#19968;&#36873;&#39033;&#32452;&#20013;&#22810;&#20110;&#19968;&#20010;&#30340;&#36873;&#39033;&#65288;&#21363;&#20351;&#22312;&#26080;&#20851;&#20046; <code>copy</code> &#30340; <code>copy_file</code> &#32452;&#20013;&#65289;</div>
<p>&#34892;&#20026;&#22914;&#19979;&#65306;</p>
<ul>
<li>&#39318;&#20808;&#65292;&#22312;&#20570;&#20219;&#20309;&#20107;&#21069;&#65292;&#20197;&#23545;&#19979;&#21015;&#20043;&#19968;&#32773;&#19981;&#22810;&#20110;&#19968;&#27425;&#30340;&#35843;&#29992;&#65292;&#33719;&#24471; <code>from</code> &#30340;&#31867;&#22411;&#19982;&#26435;&#38480;</li>
</ul>
<dl>
<dd>
<ul>
<li>&#35843;&#29992; <span class="t-lc"><a href="cpp-filesystem-status.html">std::filesystem::symlink_status</a></span> &#65292;&#33509; <code>copy_options::skip_symlinks</code> &#12289; <code>copy_options::copy_symlinks</code> &#25110; <code>copy_options::create_symlinks</code> &#23384;&#22312;&#20110; <code>options</code> &#65307;</li>
<li>&#21542;&#21017;&#35843;&#29992; <span class="t-lc"><a href="cpp-filesystem-status.html">std::filesystem::status</a></span> &#12290;</li>
</ul>
</dd>
</dl>
<ul>
<li>&#33509;&#38656;&#35201;&#65292;&#21017;&#20197;&#23545;&#19979;&#21015;&#20043;&#19968;&#32773;&#19981;&#22810;&#20110;&#19968;&#27425;&#30340;&#35843;&#29992;&#65292;&#33719;&#21462; <code>to</code> &#30340;&#29366;&#24577;</li>
</ul>
<dl>
<dd>
<ul>
<li>&#33509; <code>copy_options::skip_symlinks</code> &#25110; <code>copy_options::create_symlinks</code> &#23384;&#22312;&#20110; <code>options</code> &#65292;&#21017;&#35843;&#29992; <span class="t-lc"><a href="cpp-filesystem-status.html">std::filesystem::symlink_status</a></span> &#65307;</li>
<li>&#21542;&#21017;&#35843;&#29992; <span class="t-lc"><a href="cpp-filesystem-status.html">std::filesystem::status</a></span> &#65288;&#21253;&#25324; <code>copy_options::copy_symlinks</code> &#23384;&#22312;&#20110; <code>options</code> &#30340;&#24773;&#20917;&#65289;&#12290;</li>
</ul>
</dd>
</dl>
<ul>
<li>&#33509; <code>from</code> &#25110; <code>to</code> &#25317;&#26377;&#23454;&#29616;&#23450;&#20041;&#30340;<a href="cpp-filesystem-file_type.html">&#25991;&#20214;&#31867;&#22411;</a>&#65292;&#21017;&#27492;&#20989;&#25968;&#30340;&#25928;&#26524;&#26159;&#23454;&#29616;&#23450;&#20041;&#30340;&#12290;</li>
<li>&#33509; <code>from</code> &#19981;&#23384;&#22312;&#65292;&#21017;&#25253;&#21578;&#38169;&#35823;&#12290;</li>
<li>&#33509; <code>from</code> &#19982; <code>to</code> &#26159;&#22914; <span class="t-lc"><a href="cpp-filesystem-equivalent.html">std::filesystem::equivalent</a></span> &#25152;&#30830;&#23450;&#30340;&#21516;&#19968;&#25991;&#20214;&#65292;&#21017;&#25253;&#21578;&#38169;&#35823;</li>
<li>&#33509; <code>from</code> &#25110; <code>to</code> &#19981;&#26159;&#24120;&#35268;&#25991;&#20214;&#12289;&#30446;&#24405;&#25110;&#31526;&#21495;&#38142;&#25509;&#65292;&#22914; <span class="t-lc"><a href="cpp-filesystem-is_other.html">std::filesystem::is_other</a></span> &#25152;&#30830;&#23450;&#65292;&#21017;&#25253;&#21578;&#38169;&#35823;</li>
<li>&#33509; <code>from</code> &#26159;&#30446;&#24405;&#65292;&#20294; <code>to</code> &#26159;&#24120;&#35268;&#25991;&#20214;&#65292;&#21017;&#25253;&#21578;&#38169;&#35823;</li>
<li>&#33509; <code>from</code> &#26159;&#31526;&#21495;&#38142;&#25509;&#65292;&#21017;</li>
</ul>
<dl>
<dd>
<ul>
<li>&#33509; <code>copy_options::skip_symlink</code> &#23384;&#22312;&#20110; <code>options</code> &#65292;&#21017;&#19981;&#20570;&#20219;&#20309;&#20107;&#12290;</li>
<li>&#21542;&#21017;&#65292;&#33509; <code>to</code> &#19981;&#23384;&#22312;&#19988; <code>copy_options::copy_symlinks</code> &#23384;&#22312;&#20110; <code>options</code> &#65292;&#21017;&#34920;&#29616;&#22914;&#21516; <span class="t-c"><span class="mw-geshi cpp source-cpp">copy_symlink<span class="br0">(</span>from, to<span class="br0">)</span></span></span></li>
<li>&#21542;&#21017;&#65292;&#25253;&#21578;&#38169;&#35823;</li>
</ul>
</dd>
</dl>
<ul>
<li>&#21542;&#21017;&#65292;&#33509; <code>from</code> &#26159;&#24120;&#35268;&#25991;&#20214;&#65292;&#21017;</li>
</ul>
<dl>
<dd>
<ul>
<li>&#33509; <code>copy_options::directories_only</code> &#23384;&#22312;&#20110; <code>options</code> &#65292;&#21017;&#19981;&#20570;&#20219;&#20309;&#20107;</li>
<li>&#21542;&#21017;&#65292;&#33509; <code>copy_options::create_symlinks</code> &#23384;&#22312;&#20110; <code>options</code> &#65292;&#21017;&#21019;&#24314;&#21040; <code>to</code> &#30340;&#31526;&#21495;&#38142;&#25509;&#12290;&#27880;&#24847;&#65306; <code>from</code> &#24517;&#39035;&#26159;&#32477;&#23545;&#36335;&#24452;&#65292;&#38500;&#38750; <code>to</code> &#22312;&#24403;&#21069;&#30446;&#24405;&#20013;&#12290;</li>
<li>&#21542;&#21017;&#65292;&#33509; <code>copy_options::create_hard_links</code> &#23384;&#22312;&#20110; <code>options</code> &#65292;&#21017;&#21019;&#24314;&#21040; <code>to</code> &#30340;&#30828;&#38142;&#25509;</li>
<li>&#21542;&#21017;&#65292;&#33509; <code>to</code> &#26159;&#30446;&#24405;&#65292;&#21017;&#34920;&#29616;&#22914;&#21516; <span class="t-c"><span class="mw-geshi cpp source-cpp">copy_file<span class="br0">(</span>from, to<span class="sy2">/</span>from.<span class="me1">filename</span><span class="br0">(</span><span class="br0">)</span>, options<span class="br0">)</span></span></span> &#65288;&#21019;&#24314; <code>from</code> &#30340;&#21103;&#26412;&#65292;&#20316;&#20026; <code>to</code> &#30446;&#24405;&#20013;&#30340;&#25991;&#20214;&#65289;</li>
<li>&#21542;&#21017;&#65292;&#34920;&#29616;&#22914;&#21516; <span class="t-c"><span class="mw-geshi cpp source-cpp">copy_file<span class="br0">(</span>from, to, options<span class="br0">)</span></span></span> &#65288;&#22797;&#21046;&#25991;&#20214;&#65289;</li>
</ul>
</dd>
</dl>
<ul>
<li>&#21542;&#21017;&#65292;&#33509; <code>from</code> &#26159;&#30446;&#24405;&#32780; <code>options</code> &#20013;&#35774;&#32622;&#20102; <code>copy_options::create_symlinks</code> &#65292;&#21017;&#20197;&#31561;&#20110; <span class="t-c"><span class="mw-geshi cpp source-cpp">std<span class="sy4">::</span><span class="me2">make_error_code</span><span class="br0">(</span><a href="cpp-error-errc.html"><span class="kw912">std::<span class="me2">errc</span><span class="sy4">::</span><span class="me2">is_a_directory</span></span></a><span class="br0">)</span></span></span> &#30340;&#38169;&#35823;&#30721;&#25253;&#21578;&#38169;&#35823;&#12290;</li>
<li>&#21542;&#21017;&#65292;&#33509; <code>from</code> &#26159;&#30446;&#24405;&#19988; <code>options</code> &#25317;&#26377; <code>copy_options::recursive</code> &#25110;&#26159; <code>copy_options::none</code> &#65292;&#21017;</li>
</ul>
<dl>
<dd>
<ul>
<li>&#33509; <code>to</code> &#19981;&#23384;&#22312;&#65292;&#21017;&#39318;&#20808;&#25191;&#34892; <span class="t-c"><span class="mw-geshi cpp source-cpp">create_directory<span class="br0">(</span>to, from<span class="br0">)</span></span></span> &#65288;&#21019;&#24314;&#25317;&#26377;&#26087;&#30446;&#24405;&#23646;&#24615;&#21103;&#26412;&#30340;&#26032;&#30446;&#24405;&#65289;</li>
<li>&#28982;&#21518;&#65292;&#19981;&#31649; <code>to</code> &#24050;&#23384;&#22312;&#36824;&#26159;&#21018;&#34987;&#21019;&#24314;&#65292;&#22312; <code>from</code> &#25152;&#21547;&#26377;&#30340;&#25991;&#20214;&#19978;&#36845;&#20195;&#65292;&#22914;&#21516;&#29992; <span class="t-c"><span class="mw-geshi cpp source-cpp"><span class="kw1">for</span> <span class="br0">(</span><span class="kw4">const</span> <a href="cpp-filesystem-directory_entry.html"><span class="kw2203">std::<span class="me2">filesystem</span><span class="sy4">::</span><span class="me2">directory_entry</span></span></a><span class="sy3">&amp;</span> x <span class="sy4">:</span> <a href="cpp-filesystem-directory_iterator.html"><span class="kw2204">std::<span class="me2">filesystem</span><span class="sy4">::</span><span class="me2">directory_iterator</span></span></a><span class="br0">(</span>from<span class="br0">)</span><span class="br0">)</span></span></span> &#65292;&#24182;&#23545;&#20110;&#27599;&#20010;&#30446;&#24405;&#20837;&#21475;&#65292;&#36882;&#24402;&#22320;&#35843;&#29992; <span class="t-c"><span class="mw-geshi cpp source-cpp">copy<span class="br0">(</span>x.<span class="me1">path</span><span class="br0">(</span><span class="br0">)</span>, to<span class="sy2">/</span>x.<span class="me1">path</span><span class="br0">(</span><span class="br0">)</span>.<span class="me1">filename</span><span class="br0">(</span><span class="br0">)</span>, options <span class="sy3">|</span> in<span class="sy2">-</span>recursive<span class="sy2">-</span>copy<span class="br0">)</span></span></span> &#65292;&#20854;&#20013; <i>in-recursive-copy</i> &#26159;&#20110; <code>options</code> &#35774;&#32622;&#26102;&#26080;&#20854;&#20182;&#25928;&#26524;&#30340;&#29305;&#27530;&#20301;&#12290;&#65288;&#35774;&#32622;&#27492;&#20301;&#30340;&#29420;&#26377;&#30446;&#30340;&#26159;&#33509; <code>options</code> &#20026; <code>copy_options::none</code> &#21017;&#38459;&#27490;&#36882;&#24402;&#22797;&#21046;&#23376;&#30446;&#24405;&#65289;</li>
</ul>
</dd>
</dl>
<ul>
<li>&#21542;&#21017;&#19981;&#20570;&#20219;&#20309;&#20107;&#12290;</li>
</ul>
<h3><span class="mw-headline" id=".E5.8F.82.E6.95.B0">&#21442;&#25968;</span></h3>
<table class="t-par-begin">
<tr class="t-par">
<td>from</td>
<td>-</td>
<td>&#28304;&#25991;&#20214;&#12289;&#30446;&#24405;&#25110;&#31526;&#21495;&#38142;&#25509;&#30340;&#36335;&#24452;</td>
</tr>
<tr class="t-par">
<td>to</td>
<td>-</td>
<td>&#30446;&#26631;&#25991;&#20214;&#12289;&#30446;&#24405;&#25110;&#31526;&#21495;&#38142;&#25509;&#30340;&#36335;&#24452;</td>
</tr>
<tr class="t-par">
<td>ec</td>
<td>-</td>
<td>&#19981;&#25243;&#20986;&#37325;&#36733;&#20013;&#25253;&#21578;&#38169;&#35823;&#30340;&#36755;&#20986;&#21442;&#25968;</td>
</tr>
</table>
<h3><span class="mw-headline" id=".E8.BF.94.E5.9B.9E.E5.80.BC">&#36820;&#22238;&#20540;</span></h3>
<p>&#65288;&#26080;&#65289;</p>
<h3><span class="mw-headline" id=".E5.BC.82.E5.B8.B8">&#24322;&#24120;</span></h3>
<p>&#19981;&#25509;&#21463; <span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-error-error_code.html"><span class="kw877">std::<span class="me2">error_code</span></span></a><span class="sy3">&amp;</span></span></span> &#21442;&#25968;&#30340;&#37325;&#36733;&#22312;&#24213;&#23618; OS API &#38169;&#35823;&#26102;&#25243;&#20986; <a href="cpp-filesystem-filesystem_error.html"><tt>filesystem_error</tt></a> &#65292;&#20197;&#31532;&#19968; path &#21442;&#25968; <code>from</code>&#65292;&#31532;&#20108; path &#21442;&#25968; <code>to</code> &#21644;&#20316;&#20026;&#38169;&#35823;&#30721;&#21442;&#25968;&#30340; OS &#38169;&#35823;&#30721;&#26500;&#36896;&#12290;&#33509; OS API &#35843;&#29992;&#22833;&#36133;&#65292;&#21017;&#25509;&#21463; <span class="t-c"><span class="mw-geshi cpp source-cpp"><a href="cpp-error-error_code.html"><span class="kw877">std::<span class="me2">error_code</span></span></a><span class="sy3">&amp;</span></span></span> &#21442;&#25968;&#30340;&#37325;&#36733;&#35774;&#32622;&#35813;&#21442;&#25968;&#20026; OS API &#38169;&#35823;&#30721;&#65292;&#32780;&#33509;&#19981;&#20986;&#29616;&#38169;&#35823;&#21017;&#25191;&#34892; <span class="t-c"><span class="mw-geshi cpp source-cpp">ec.<span class="me1">clear</span><span class="br0">(</span><span class="br0">)</span></span></span> &#12290;&#33509;&#20869;&#23384;&#20998;&#37197;&#22833;&#36133;&#65292;&#21017;&#20219;&#20309;&#19981;&#26631;&#35760;&#20026; <code>noexcept</code> &#30340;&#37325;&#36733;&#21487;&#33021;&#25243;&#20986; <span class="t-lc"><a href="cpp-memory-new-bad_alloc.html">std::bad_alloc</a></span> &#12290;</p>
<h3><span class="mw-headline" id=".E6.B3.A8.E8.A7.A3">&#27880;&#35299;</span></h3>
<p>&#22797;&#21046;&#30446;&#24405;&#26102;&#30340;&#40664;&#35748;&#34892;&#20026;&#26159;&#38750;&#36882;&#24402;&#22797;&#21046;&#65306;&#22797;&#21046;&#25991;&#20214;&#65292;&#20294;&#19981;&#22797;&#21046;&#23376;&#30446;&#24405;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="co1">// &#32473;&#23450;</span>
<span class="co1">// /dir1 &#21547;&#26377; /dir1/file1 &#12289; /dir1/file2 &#12289; /dir1/dir2</span>
<span class="co1">// &#32780; /dir1/dir2 &#21547;&#26377; /dir1/dir2/file3</span>
std<span class="sy4">::</span><span class="me2">filesystem</span><span class="sy4">::</span><span class="me2">copy</span><span class="br0">(</span><span class="st0">&quot;/dir1&quot;</span>, <span class="st0">&quot;/dir3&quot;</span><span class="br0">)</span><span class="sy4">;</span>
<span class="co1">// &#20043;&#21518;</span>
<span class="co1">// &#21019;&#24314; /dir3 &#65288;&#25317;&#26377; /dir1 &#30340;&#23646;&#24615;&#65289;</span>
<span class="co1">// /dir1/file1 &#34987;&#22797;&#21046;&#21040; /dir3/file1</span>
<span class="co1">// /dir1/file2 &#34987;&#22797;&#21046;&#21040; /dir3/file2</span></pre></div>
</div>
<p>&#32780;&#24102;&#26377; <code>copy_options::recursive</code> &#26102;&#65292;&#20134;&#22797;&#21046;&#23376;&#30446;&#24405;&#65292;&#36882;&#24402;&#22320;&#24102;&#26377;&#20854;&#20869;&#23481;&#12290;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="co1">// &hellip;&hellip;&#20294;&#22312;&#19979;&#19968;&#21477;&#21518;</span>
std<span class="sy4">::</span><span class="me2">filesystem</span><span class="sy4">::</span><span class="me2">copy</span><span class="br0">(</span><span class="st0">&quot;/dir1&quot;</span>, <span class="st0">&quot;/dir3&quot;</span>, <a href="cpp-filesystem-copy_options.html"><span class="kw2247">std::<span class="me2">filesystem</span><span class="sy4">::</span><span class="me2">copy_options</span><span class="sy4">::</span><span class="me2">recursive</span></span></a><span class="br0">)</span><span class="sy4">;</span>
<span class="co1">// &#21019;&#24314; /dir3 &#65288;&#25317;&#26377; /dir1 &#30340;&#23646;&#24615;&#65289;</span>
<span class="co1">// /dir1/file1 &#34987;&#22797;&#21046;&#21040; /dir3/file1</span>
<span class="co1">// /dir1/file2 &#34987;&#22797;&#21046;&#21040; /dir3/file2</span>
<span class="co1">// &#21019;&#24314; /dir3/dir2 &#65288;&#25317;&#26377; /dir1/dir2 &#30340;&#23646;&#24615;&#65289;</span>
<span class="co1">// /dir1/dir2/file3 &#34987;&#22797;&#21046;&#21040; /dir3/dir2/file3</span></pre></div>
</div>
<h3><span class="mw-headline" id=".E7.A4.BA.E4.BE.8B">&#31034;&#20363;</span></h3>
<div class="t-example">
<div class="t-example-live-link"></div>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="cpp source-cpp">
<pre class="de1"><span class="co2">#include &lt;cstdlib&gt;</span>
<span class="co2">#include &lt;iostream&gt;</span>
<span class="co2">#include &lt;fstream&gt;</span>
<span class="co2">#include &lt;filesystem&gt;</span>
<span class="kw1">namespace</span> fs <span class="sy1">=</span> std<span class="sy4">::</span><span class="me2">filesystem</span><span class="sy4">;</span>
<span class="kw4">int</span> main<span class="br0">(</span><span class="br0">)</span>
<span class="br0">{</span>
fs<span class="sy4">::</span><span class="me2">create_directories</span><span class="br0">(</span><span class="st0">&quot;sandbox/dir/subdir&quot;</span><span class="br0">)</span><span class="sy4">;</span>
<a href="cpp-io-basic_ofstream.html"><span class="kw1733">std::<span class="me2">ofstream</span></span></a><span class="br0">(</span><span class="st0">&quot;sandbox/file1.txt&quot;</span><span class="br0">)</span>.<span class="me1">put</span><span class="br0">(</span><span class="st0">&#39;a&#39;</span><span class="br0">)</span><span class="sy4">;</span>
fs<span class="sy4">::</span><span class="me2">copy</span><span class="br0">(</span><span class="st0">&quot;sandbox/file1.txt&quot;</span>, <span class="st0">&quot;sandbox/file2.txt&quot;</span><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#22797;&#21046;&#25991;&#20214;</span>
fs<span class="sy4">::</span><span class="me2">copy</span><span class="br0">(</span><span class="st0">&quot;sandbox/dir&quot;</span>, <span class="st0">&quot;sandbox/dir2&quot;</span><span class="br0">)</span><span class="sy4">;</span> <span class="co1">// &#22797;&#21046;&#30446;&#24405;&#65288;&#38750;&#36882;&#24402;&#65289;</span>
<span class="kw4">const</span> <span class="kw4">auto</span> copyOptions <span class="sy1">=</span> fs<span class="sy4">::</span><span class="me2">copy_options</span><span class="sy4">::</span><span class="me2">update_existing</span>
<span class="sy3">|</span> fs<span class="sy4">::</span><span class="me2">copy_options</span><span class="sy4">::</span><span class="me2">recursive</span>
<span class="sy3">|</span> fs<span class="sy4">::</span><span class="me2">copy_options</span><span class="sy4">::</span><span class="me2">directories_only</span>
<span class="sy4">;</span>
fs<span class="sy4">::</span><span class="me2">copy</span><span class="br0">(</span><span class="st0">&quot;sandbox&quot;</span>, <span class="st0">&quot;sandbox_copy&quot;</span>, copyOptions<span class="br0">)</span><span class="sy4">;</span>
<span class="kw1">static_cast</span><span class="sy1">&lt;</span><span class="kw4">void</span><span class="sy1">&gt;</span><span class="br0">(</span><a href="cpp-utility-program-system.html"><span class="kw974">std::<span class="me2">system</span></span></a><span class="br0">(</span><span class="st0">&quot;tree&quot;</span><span class="br0">)</span><span class="br0">)</span><span class="sy4">;</span>
fs<span class="sy4">::</span><span class="me2">remove_all</span><span class="br0">(</span><span class="st0">&quot;sandbox&quot;</span><span class="br0">)</span><span class="sy4">;</span>
fs<span class="sy4">::</span><span class="me2">remove_all</span><span class="br0">(</span><span class="st0">&quot;sandbox_copy&quot;</span><span class="br0">)</span><span class="sy4">;</span>
<span class="br0">}</span></pre></div>
</div>
<p>&#21487;&#33021;&#30340;&#36755;&#20986;&#65306;</p>
<div dir="ltr" class="mw-geshi" style="text-align: left;">
<div class="text source-text">
<pre class="de1">.
&#9500;&#9472;&#9472; sandbox
&#9474; &#9500;&#9472;&#9472; dir
&#9474; &#9474; &#9492;&#9472;&#9472; subdir
&#9474; &#9500;&#9472;&#9472; dir2
&#9474; &#9500;&#9472;&#9472; file1.txt
&#9474; &#9492;&#9472;&#9472; file2.txt
&#9492;&#9472;&#9472; sandbox_copy
&#9500;&#9472;&#9472; dir
&#9474; &#9492;&#9472;&#9472; subdir
&#9492;&#9472;&#9472; dir2
8 directories, 2 files</pre></div>
</div>
</div>
<h3><span class="mw-headline" id=".E7.BC.BA.E9.99.B7.E6.8A.A5.E5.91.8A">&#32570;&#38519;&#25253;&#21578;</span></h3>
<p>&#19979;&#21015;&#26356;&#25913;&#34892;&#20026;&#30340;&#32570;&#38519;&#25253;&#21578;&#36861;&#28335;&#22320;&#24212;&#29992;&#20110;&#20197;&#21069;&#20986;&#29256;&#30340; C++ &#26631;&#20934;&#12290;</p>
<table class="dsctable" style="font-size:0.8em">
<tr>
<th>DR</th>
<th>&#24212;&#29992;&#20110;</th>
<th>&#20986;&#29256;&#26102;&#30340;&#34892;&#20026;</th>
<th>&#27491;&#30830;&#34892;&#20026;</th>
</tr>
<tr>
<td><a rel="nofollow" class="external text" href="https://cplusplus.github.io/LWG/issue3013">LWG 3013</a></td>
<td>C++17</td>
<td><code>error_code</code> &#37325;&#36733;&#34987;&#26631;&#35760;&#20026; noexcept &#20294;&#33021;&#20998;&#37197;&#20869;&#23384;</td>
<td>&#31227;&#38500; noexcept</td>
</tr>
<tr>
<td><a rel="nofollow" class="external text" href="https://cplusplus.github.io/LWG/issue2682">LWG 2682</a></td>
<td>C++17</td>
<td>&#35797;&#22270;&#20026;&#30446;&#24405;&#21019;&#24314;&#31526;&#21495;&#38142;&#25509;&#20250;&#25104;&#21151;&#20294;&#19981;&#20570;&#20219;&#20309;&#20107;</td>
<td>&#25253;&#21578;&#38169;&#35823;</td>
</tr>
</table>
<h3><span class="mw-headline" id=".E5.8F.82.E9.98.85">&#21442;&#38405;</span></h3>
<table class="t-dsc-begin">
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-filesystem-copy_options.html"><span class="t-lines"><span>copy_options</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx17">(C++17)</span></span></span></div>
</div>
</td>
<td>&#25351;&#23450;&#22797;&#21046;&#25805;&#20316;&#30340;&#35821;&#20041;<br />
<span class="t-mark">(&#26522;&#20030;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-filesystem-copy_symlink.html"><span class="t-lines"><span>copy_symlink</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx17">(C++17)</span></span></span></div>
</div>
</td>
<td>&#22797;&#21046;&#19968;&#20010;&#31526;&#21495;&#38142;&#25509;<br />
<span class="t-mark">(&#20989;&#25968;)</span></td>
</tr>
<tr class="t-dsc">
<td>
<div class="t-dsc-member-div">
<div><a href="cpp-filesystem-copy_file.html"><span class="t-lines"><span>copy_file</span></span></a></div>
<div><span class="t-lines"><span><span class="t-mark-rev t-since-cxx17">(C++17)</span></span></span></div>
</div>
</td>
<td>&#22797;&#21046;&#25991;&#20214;&#20869;&#23481;<br />
<span class="t-mark">(&#20989;&#25968;)</span></td>
</tr>
</table>
</div>
<div class="visualClear"></div>
</div>
</div>
</div>
</body>
</html>