Files
dl/document/html/namespacedl_1_1_file.html
2026-09-16 14:07:40 +08:00

1514 lines
79 KiB
HTML
Vendored
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
<meta name="generator" content="Doxygen 1.13.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>dl: dl::File 命名空间参考</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="clipboard.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr id="projectrow">
<td id="projectalign">
<div id="projectname">dl
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.13.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() { codefold.init(0); });
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function() {
initMenu('',false,false,'search.php','搜索',false);
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(function(){ initResizable(false); });
/* @license-end */
</script>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="namespacedl.html">dl</a></li><li class="navelem"><a class="el" href="namespacedl_1_1_file.html">File</a></li> </ul>
</div>
</div><!-- top -->
<div id="doc-content">
<div class="header">
<div class="summary">
<a href="#namespaces">命名空间</a> &#124;
<a href="#nested-classes"></a> &#124;
<a href="#enum-members">枚举</a> &#124;
<a href="#func-members">函数</a> </div>
<div class="headertitle"><div class="title">dl::File 命名空间参考</div></div>
</div><!--header-->
<div class="contents">
<p>文件系统
<a href="#details">更多...</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="namespaces" name="namespaces"></a>
命名空间</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">namespace &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacedl_1_1_file_1_1_lua.html">Lua</a></td></tr>
<tr class="memdesc:namespacedl_1_1_file_1_1_lua"><td class="mdescLeft">&#160;</td><td class="mdescRight">文件系统lua接口 <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="nested-classes" name="nested-classes"></a>
</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structdl_1_1_file_1_1_search_rule.html">SearchRule</a></td></tr>
<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">过滤规则,不兼容大小写 <a href="structdl_1_1_file_1_1_search_rule.html#details">更多...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="enum-members" name="enum-members"></a>
枚举</h2></td></tr>
<tr class="memitem:a65ba6efea9a512e9ba5c2d10d5e3fba0" id="r_a65ba6efea9a512e9ba5c2d10d5e3fba0"><td class="memItemLeft" align="right" valign="top">enum class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a65ba6efea9a512e9ba5c2d10d5e3fba0">CopyMode</a> { <a class="el" href="#a65ba6efea9a512e9ba5c2d10d5e3fba0ab50339a10e1de285ac99d4c3990b8693">NONE</a>
, <a class="el" href="#a65ba6efea9a512e9ba5c2d10d5e3fba0a3a5974efbe92686d30f0261a204e6ee7">OVERRIDE</a>
, <a class="el" href="#a65ba6efea9a512e9ba5c2d10d5e3fba0ab85df04e922fe1dd3c1f0692faeaacef">SKIP</a>
}</td></tr>
<tr class="separator:a65ba6efea9a512e9ba5c2d10d5e3fba0"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
函数</h2></td></tr>
<tr class="memitem:a3ee7cd52109759691467c4056ce675f2" id="r_a3ee7cd52109759691467c4056ce675f2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a3ee7cd52109759691467c4056ce675f2">GetPathFileAll</a> (std::string_view path, std::vector&lt; std::string &gt; &amp;ret, std::string_view regex=&quot;&quot;, bool recursion=true)</td></tr>
<tr class="memdesc:a3ee7cd52109759691467c4056ce675f2"><td class="mdescLeft">&#160;</td><td class="mdescRight">获取文件夹所有文件 <br /></td></tr>
<tr class="separator:a3ee7cd52109759691467c4056ce675f2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af7e3a8109f74c2c3bb04fbb6394c94bc" id="r_af7e3a8109f74c2c3bb04fbb6394c94bc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#af7e3a8109f74c2c3bb04fbb6394c94bc">GetPathFileAll</a> (std::string_view path, std::vector&lt; std::string &gt; &amp;ret, const <a class="el" href="structdl_1_1_file_1_1_search_rule.html">SearchRule</a> &amp;rule, bool recursion=true)</td></tr>
<tr class="memdesc:af7e3a8109f74c2c3bb04fbb6394c94bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">获取文件夹所有文件 <br /></td></tr>
<tr class="separator:af7e3a8109f74c2c3bb04fbb6394c94bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a66b12455ef0b35f95b15187bd7904f8f" id="r_a66b12455ef0b35f95b15187bd7904f8f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a66b12455ef0b35f95b15187bd7904f8f">GetPathContent</a> (std::string_view path, std::vector&lt; std::string &gt; &amp;ret, std::string_view regex=&quot;&quot;, bool folder=true, bool file=true)</td></tr>
<tr class="memdesc:a66b12455ef0b35f95b15187bd7904f8f"><td class="mdescLeft">&#160;</td><td class="mdescRight">获取文件夹当前内容 <br /></td></tr>
<tr class="separator:a66b12455ef0b35f95b15187bd7904f8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6895b6ac40510ed6afda659ca290bf9c" id="r_a6895b6ac40510ed6afda659ca290bf9c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a6895b6ac40510ed6afda659ca290bf9c">GetPathContentAll</a> (std::string_view path, <a class="el" href="classdl_1_1_n_tree.html">NTree</a>&lt; std::string &gt; &amp;ret)</td></tr>
<tr class="memdesc:a6895b6ac40510ed6afda659ca290bf9c"><td class="mdescLeft">&#160;</td><td class="mdescRight">获取文件夹所有内容 <br /></td></tr>
<tr class="separator:a6895b6ac40510ed6afda659ca290bf9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a28468f91b9f718653b091db839b241b0" id="r_a28468f91b9f718653b091db839b241b0"><td class="memItemLeft" align="right" valign="top">FILE *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a28468f91b9f718653b091db839b241b0">GetFile</a> (std::string_view path_name, bool is_binary=true)</td></tr>
<tr class="memdesc:a28468f91b9f718653b091db839b241b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">打开一个文件(只读),可能从压缩包内读取 <br /></td></tr>
<tr class="separator:a28468f91b9f718653b091db839b241b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7afdc780937a728bb52260dfab167e20" id="r_a7afdc780937a728bb52260dfab167e20"><td class="memItemLeft" align="right" valign="top">std::ifstream&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a7afdc780937a728bb52260dfab167e20">Get</a> (std::string_view path_name, bool is_binary=true)</td></tr>
<tr class="separator:a7afdc780937a728bb52260dfab167e20"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac04461b090a20b71d44a5f9bfa859077" id="r_ac04461b090a20b71d44a5f9bfa859077"><td class="memItemLeft" align="right" valign="top">std::ofstream&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ac04461b090a20b71d44a5f9bfa859077">Set</a> (std::string_view path_name, bool is_binary=true, bool is_app=false)</td></tr>
<tr class="memdesc:ac04461b090a20b71d44a5f9bfa859077"><td class="mdescLeft">&#160;</td><td class="mdescRight">打开一个文件(只写) <br /></td></tr>
<tr class="separator:ac04461b090a20b71d44a5f9bfa859077"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a89af12f224acac3614dbbbc32c53bb66" id="r_a89af12f224acac3614dbbbc32c53bb66"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a89af12f224acac3614dbbbc32c53bb66">ConvertMb2U8</a> (std::string_view path_name, std::string_view out)</td></tr>
<tr class="memdesc:a89af12f224acac3614dbbbc32c53bb66"><td class="mdescLeft">&#160;</td><td class="mdescRight">将文本文件从mb转到utf-8 <br /></td></tr>
<tr class="separator:a89af12f224acac3614dbbbc32c53bb66"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acef558947516ea7634735cd708280372" id="r_acef558947516ea7634735cd708280372"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#acef558947516ea7634735cd708280372">GetString</a> (std::string_view path_name)</td></tr>
<tr class="memdesc:acef558947516ea7634735cd708280372"><td class="mdescLeft">&#160;</td><td class="mdescRight">按文本读文件 <br /></td></tr>
<tr class="separator:acef558947516ea7634735cd708280372"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae7bb62971470fc3c4cdf7bc161a05206" id="r_ae7bb62971470fc3c4cdf7bc161a05206"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdl_1_1_buffer.html">Buffer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae7bb62971470fc3c4cdf7bc161a05206">GetBuffer</a> (std::string_view path_name)</td></tr>
<tr class="memdesc:ae7bb62971470fc3c4cdf7bc161a05206"><td class="mdescLeft">&#160;</td><td class="mdescRight">返回文件内存 <br /></td></tr>
<tr class="separator:ae7bb62971470fc3c4cdf7bc161a05206"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab131ba95d1079fabc232fbb3452ae132" id="r_ab131ba95d1079fabc232fbb3452ae132"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdl_1_1_buffer.html">Buffer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ab131ba95d1079fabc232fbb3452ae132">GetBuffer</a> (std::ifstream &amp;ifs)</td></tr>
<tr class="memdesc:ab131ba95d1079fabc232fbb3452ae132"><td class="mdescLeft">&#160;</td><td class="mdescRight">返回文件内存 <br /></td></tr>
<tr class="separator:ab131ba95d1079fabc232fbb3452ae132"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8281f88a2d0a6e3c28610589e3858e84" id="r_a8281f88a2d0a6e3c28610589e3858e84"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a8281f88a2d0a6e3c28610589e3858e84">SaveBuffer</a> (<a class="el" href="classdl_1_1_buffer_view.html">BufferView</a> buf, std::string_view path_name)</td></tr>
<tr class="memdesc:a8281f88a2d0a6e3c28610589e3858e84"><td class="mdescLeft">&#160;</td><td class="mdescRight">将内存保存为文件 <br /></td></tr>
<tr class="separator:a8281f88a2d0a6e3c28610589e3858e84"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ef6bbd7cbaa49af9256047c8150a526" id="r_a4ef6bbd7cbaa49af9256047c8150a526"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a4ef6bbd7cbaa49af9256047c8150a526">SaveString</a> (<a class="el" href="classdl_1_1_buffer_view.html">BufferView</a> buf, std::string_view path_name)</td></tr>
<tr class="memdesc:a4ef6bbd7cbaa49af9256047c8150a526"><td class="mdescLeft">&#160;</td><td class="mdescRight">将字符串保存为文件 <br /></td></tr>
<tr class="separator:a4ef6bbd7cbaa49af9256047c8150a526"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae4009d848f74b85d922cd73b9870c353" id="r_ae4009d848f74b85d922cd73b9870c353"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ae4009d848f74b85d922cd73b9870c353">SaveString</a> (std::string_view str, std::string_view path_name)</td></tr>
<tr class="memdesc:ae4009d848f74b85d922cd73b9870c353"><td class="mdescLeft">&#160;</td><td class="mdescRight">将字符串保存为文件 <br /></td></tr>
<tr class="separator:ae4009d848f74b85d922cd73b9870c353"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a22b74cc015e6e1ed05c1455b091807e0" id="r_a22b74cc015e6e1ed05c1455b091807e0"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a22b74cc015e6e1ed05c1455b091807e0">GetCrc32</a> (std::string_view path_name)</td></tr>
<tr class="memdesc:a22b74cc015e6e1ed05c1455b091807e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">返回文件Blake2b值 <br /></td></tr>
<tr class="separator:a22b74cc015e6e1ed05c1455b091807e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a65a4abe44715791a0dde4aeb6e9497ed" id="r_a65a4abe44715791a0dde4aeb6e9497ed"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a65a4abe44715791a0dde4aeb6e9497ed">IsExist</a> (std::string_view path_name)</td></tr>
<tr class="memdesc:a65a4abe44715791a0dde4aeb6e9497ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">返回文件是否存在 <br /></td></tr>
<tr class="separator:a65a4abe44715791a0dde4aeb6e9497ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8a0b12c81b58ca4c96026b6804862eac" id="r_a8a0b12c81b58ca4c96026b6804862eac"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a8a0b12c81b58ca4c96026b6804862eac">IsEmpty</a> (std::string_view path)</td></tr>
<tr class="memdesc:a8a0b12c81b58ca4c96026b6804862eac"><td class="mdescLeft">&#160;</td><td class="mdescRight">返回文件夹是否为空 <br /></td></tr>
<tr class="separator:a8a0b12c81b58ca4c96026b6804862eac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab8e67825de6beb023ce02d725f7eda9a" id="r_ab8e67825de6beb023ce02d725f7eda9a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ab8e67825de6beb023ce02d725f7eda9a">Delete</a> (std::string_view path_name, bool all=false)</td></tr>
<tr class="memdesc:ab8e67825de6beb023ce02d725f7eda9a"><td class="mdescLeft">&#160;</td><td class="mdescRight">删除文件或路径 <br /></td></tr>
<tr class="separator:ab8e67825de6beb023ce02d725f7eda9a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a02a311244c38b5ff3083b8a2435efedd" id="r_a02a311244c38b5ff3083b8a2435efedd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a02a311244c38b5ff3083b8a2435efedd">DeleteContent</a> (std::string_view path_name)</td></tr>
<tr class="memdesc:a02a311244c38b5ff3083b8a2435efedd"><td class="mdescLeft">&#160;</td><td class="mdescRight">删除文件夹内容,但不删除文件夹 <br /></td></tr>
<tr class="separator:a02a311244c38b5ff3083b8a2435efedd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6f511ec480c6d9ff53bd134d9d63a926" id="r_a6f511ec480c6d9ff53bd134d9d63a926"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a6f511ec480c6d9ff53bd134d9d63a926">Rename</a> (std::string_view src, std::string_view tar)</td></tr>
<tr class="memdesc:a6f511ec480c6d9ff53bd134d9d63a926"><td class="mdescLeft">&#160;</td><td class="mdescRight">重命名文件 <br /></td></tr>
<tr class="separator:a6f511ec480c6d9ff53bd134d9d63a926"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7fd5f1b8db8bad24ab1bb6264dbba0d8" id="r_a7fd5f1b8db8bad24ab1bb6264dbba0d8"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a7fd5f1b8db8bad24ab1bb6264dbba0d8">Search</a> (std::string_view path, std::string_view file_name)</td></tr>
<tr class="memdesc:a7fd5f1b8db8bad24ab1bb6264dbba0d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">从路径搜索文件 <br /></td></tr>
<tr class="separator:a7fd5f1b8db8bad24ab1bb6264dbba0d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a050ae2e4c1354100a7c2e317e7407f19" id="r_a050ae2e4c1354100a7c2e317e7407f19"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a050ae2e4c1354100a7c2e317e7407f19">Copy</a> (std::string_view source, std::string_view target, <a class="el" href="#a65ba6efea9a512e9ba5c2d10d5e3fba0">CopyMode</a> mode=<a class="el" href="#a65ba6efea9a512e9ba5c2d10d5e3fba0ab50339a10e1de285ac99d4c3990b8693">CopyMode::NONE</a>, bool recursion=false)</td></tr>
<tr class="memdesc:a050ae2e4c1354100a7c2e317e7407f19"><td class="mdescLeft">&#160;</td><td class="mdescRight">复制文件或文件夹 <br /></td></tr>
<tr class="separator:a050ae2e4c1354100a7c2e317e7407f19"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a699ea40c9ece134967495363f05222" id="r_a7a699ea40c9ece134967495363f05222"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a7a699ea40c9ece134967495363f05222">GetExtension</a> (std::string_view path_name, bool has_dot=false)</td></tr>
<tr class="memdesc:a7a699ea40c9ece134967495363f05222"><td class="mdescLeft">&#160;</td><td class="mdescRight">返回文件后缀 <br /></td></tr>
<tr class="separator:a7a699ea40c9ece134967495363f05222"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af89a6e722274226cb17cf6865ba1ad4d" id="r_af89a6e722274226cb17cf6865ba1ad4d"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#af89a6e722274226cb17cf6865ba1ad4d">GetFileName</a> (std::string_view path_name)</td></tr>
<tr class="memdesc:af89a6e722274226cb17cf6865ba1ad4d"><td class="mdescLeft">&#160;</td><td class="mdescRight">返回文件名 包含后缀 <br /></td></tr>
<tr class="separator:af89a6e722274226cb17cf6865ba1ad4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2c38eaa5c040b78e5df6393d42e8ad82" id="r_a2c38eaa5c040b78e5df6393d42e8ad82"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a2c38eaa5c040b78e5df6393d42e8ad82">GetStem</a> (std::string_view path_name)</td></tr>
<tr class="memdesc:a2c38eaa5c040b78e5df6393d42e8ad82"><td class="mdescLeft">&#160;</td><td class="mdescRight">返回文件名 不含后缀 <br /></td></tr>
<tr class="separator:a2c38eaa5c040b78e5df6393d42e8ad82"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7cb61eaef6e197f454cd64c01681dfac" id="r_a7cb61eaef6e197f454cd64c01681dfac"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a7cb61eaef6e197f454cd64c01681dfac">GetFolderName</a> (std::string_view path_name)</td></tr>
<tr class="memdesc:a7cb61eaef6e197f454cd64c01681dfac"><td class="mdescLeft">&#160;</td><td class="mdescRight">返回路径所在文件夹名 <br /></td></tr>
<tr class="separator:a7cb61eaef6e197f454cd64c01681dfac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a944ba155c2c810d67a8ee8ca5efd6a1b" id="r_a944ba155c2c810d67a8ee8ca5efd6a1b"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a944ba155c2c810d67a8ee8ca5efd6a1b">GetFilePath</a> (std::string_view path_name)</td></tr>
<tr class="memdesc:a944ba155c2c810d67a8ee8ca5efd6a1b"><td class="mdescLeft">&#160;</td><td class="mdescRight">返回文件所在路径 <br /></td></tr>
<tr class="separator:a944ba155c2c810d67a8ee8ca5efd6a1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a84b2589d84e66a0ed7f567d0107f9946" id="r_a84b2589d84e66a0ed7f567d0107f9946"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a84b2589d84e66a0ed7f567d0107f9946">GetAbsolute</a> (std::string_view path_name)</td></tr>
<tr class="memdesc:a84b2589d84e66a0ed7f567d0107f9946"><td class="mdescLeft">&#160;</td><td class="mdescRight">返回绝对路径 <br /></td></tr>
<tr class="separator:a84b2589d84e66a0ed7f567d0107f9946"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acde2d5b52b91b3d4f6740604f47a4313" id="r_acde2d5b52b91b3d4f6740604f47a4313"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#acde2d5b52b91b3d4f6740604f47a4313">GetRelative</a> (std::string_view path_name, std::string_view path_base)</td></tr>
<tr class="memdesc:acde2d5b52b91b3d4f6740604f47a4313"><td class="mdescLeft">&#160;</td><td class="mdescRight">返回相对路径 <br /></td></tr>
<tr class="separator:acde2d5b52b91b3d4f6740604f47a4313"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab5d568af0e137dc89ec8ed0f5a92457b" id="r_ab5d568af0e137dc89ec8ed0f5a92457b"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ab5d568af0e137dc89ec8ed0f5a92457b">GetParentPath</a> (std::string_view path_name)</td></tr>
<tr class="memdesc:ab5d568af0e137dc89ec8ed0f5a92457b"><td class="mdescLeft">&#160;</td><td class="mdescRight">返回上一级路径 <br /></td></tr>
<tr class="separator:ab5d568af0e137dc89ec8ed0f5a92457b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0f557be990b6b800795fa76107689ef" id="r_ac0f557be990b6b800795fa76107689ef"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ac0f557be990b6b800795fa76107689ef">CreateFolder</a> (std::string_view path)</td></tr>
<tr class="memdesc:ac0f557be990b6b800795fa76107689ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">创建目录 <br /></td></tr>
<tr class="separator:ac0f557be990b6b800795fa76107689ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a856568eab88642c605e42e29b87a1c6e" id="r_a856568eab88642c605e42e29b87a1c6e"><td class="memItemLeft" align="right" valign="top">time_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a856568eab88642c605e42e29b87a1c6e">GetLastWriteTime</a> (std::string_view path_name)</td></tr>
<tr class="memdesc:a856568eab88642c605e42e29b87a1c6e"><td class="mdescLeft">&#160;</td><td class="mdescRight">返回文件最后修改时间 <br /></td></tr>
<tr class="separator:a856568eab88642c605e42e29b87a1c6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a21b1933ea35cbf28b4cce42fce888700" id="r_a21b1933ea35cbf28b4cce42fce888700"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a21b1933ea35cbf28b4cce42fce888700">CheckPathFileModified</a> (std::string_view path_name, const <a class="el" href="structdl_1_1_file_1_1_search_rule.html">SearchRule</a> &amp;rule, std::string_view cache, bool update)</td></tr>
<tr class="memdesc:a21b1933ea35cbf28b4cce42fce888700"><td class="mdescLeft">&#160;</td><td class="mdescRight">判断路径内的文件是否有修改(包括增加、删除文件) <br /></td></tr>
<tr class="separator:a21b1933ea35cbf28b4cce42fce888700"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7cb490aa80c8fc8070c104916548bb81" id="r_a7cb490aa80c8fc8070c104916548bb81"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a7cb490aa80c8fc8070c104916548bb81">PathCurrent</a> ()</td></tr>
<tr class="memdesc:a7cb490aa80c8fc8070c104916548bb81"><td class="mdescLeft">&#160;</td><td class="mdescRight">返回资源路径 <br /></td></tr>
<tr class="separator:a7cb490aa80c8fc8070c104916548bb81"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac3db9ec3eb4786fe8d34521a9e88dcfe" id="r_ac3db9ec3eb4786fe8d34521a9e88dcfe"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ac3db9ec3eb4786fe8d34521a9e88dcfe">PathTemp</a> ()</td></tr>
<tr class="memdesc:ac3db9ec3eb4786fe8d34521a9e88dcfe"><td class="mdescLeft">&#160;</td><td class="mdescRight">返回临时路径 rw <br /></td></tr>
<tr class="separator:ac3db9ec3eb4786fe8d34521a9e88dcfe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad71bbfbb1c1a90047440abf028aa5ba7" id="r_ad71bbfbb1c1a90047440abf028aa5ba7"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ad71bbfbb1c1a90047440abf028aa5ba7">PathStorage</a> ()</td></tr>
<tr class="memdesc:ad71bbfbb1c1a90047440abf028aa5ba7"><td class="mdescLeft">&#160;</td><td class="mdescRight">返回存储路径 rw <br /></td></tr>
<tr class="separator:ad71bbfbb1c1a90047440abf028aa5ba7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a36bbd794f2614ed394d18e91fa1e3784" id="r_a36bbd794f2614ed394d18e91fa1e3784"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a36bbd794f2614ed394d18e91fa1e3784">PathStorageRoot</a> ()</td></tr>
<tr class="memdesc:a36bbd794f2614ed394d18e91fa1e3784"><td class="mdescLeft">&#160;</td><td class="mdescRight">返回存储路径根位置 rw <br /></td></tr>
<tr class="separator:a36bbd794f2614ed394d18e91fa1e3784"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7ebe295f85a0e5a50db3b6a905ff01b7" id="r_a7ebe295f85a0e5a50db3b6a905ff01b7"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a7ebe295f85a0e5a50db3b6a905ff01b7">PathPrivate</a> ()</td></tr>
<tr class="memdesc:a7ebe295f85a0e5a50db3b6a905ff01b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">返回私有路径 rw <br /></td></tr>
<tr class="separator:a7ebe295f85a0e5a50db3b6a905ff01b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ae206b89c0591bba25e0314b4906c80" id="r_a9ae206b89c0591bba25e0314b4906c80"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a9ae206b89c0591bba25e0314b4906c80">PathPublic</a> ()</td></tr>
<tr class="memdesc:a9ae206b89c0591bba25e0314b4906c80"><td class="mdescLeft">&#160;</td><td class="mdescRight">返回公共路径 rw <br /></td></tr>
<tr class="separator:a9ae206b89c0591bba25e0314b4906c80"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5764b72cff687878d5a0623be4d3c625" id="r_a5764b72cff687878d5a0623be4d3c625"><td class="memItemLeft" align="right" valign="top">std::vector&lt; std::string &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a5764b72cff687878d5a0623be4d3c625">PathRegular</a> ()</td></tr>
<tr class="memdesc:a5764b72cff687878d5a0623be4d3c625"><td class="mdescLeft">&#160;</td><td class="mdescRight">返回常用路径 <br /></td></tr>
<tr class="separator:a5764b72cff687878d5a0623be4d3c625"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac73b5e0cdfedd9f2c98607714cddf643" id="r_ac73b5e0cdfedd9f2c98607714cddf643"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#ac73b5e0cdfedd9f2c98607714cddf643">InitFileSystem</a> ()</td></tr>
<tr class="separator:ac73b5e0cdfedd9f2c98607714cddf643"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
<div class="textblock"><p>文件系统 </p>
</div><h2 class="groupheader">枚举类型说明</h2>
<a id="a65ba6efea9a512e9ba5c2d10d5e3fba0" name="a65ba6efea9a512e9ba5c2d10d5e3fba0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a65ba6efea9a512e9ba5c2d10d5e3fba0">&#9670;&#160;</a></span>CopyMode</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">enum class <a class="el" href="#a65ba6efea9a512e9ba5c2d10d5e3fba0">dl::File::CopyMode</a></td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel strong">strong</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">枚举值</th></tr><tr><td class="fieldname"><a id="a65ba6efea9a512e9ba5c2d10d5e3fba0ab50339a10e1de285ac99d4c3990b8693" name="a65ba6efea9a512e9ba5c2d10d5e3fba0ab50339a10e1de285ac99d4c3990b8693"></a>NONE&#160;</td><td class="fielddoc"><p>文件已存在,则返回失败 </p>
</td></tr>
<tr><td class="fieldname"><a id="a65ba6efea9a512e9ba5c2d10d5e3fba0a3a5974efbe92686d30f0261a204e6ee7" name="a65ba6efea9a512e9ba5c2d10d5e3fba0a3a5974efbe92686d30f0261a204e6ee7"></a>OVERRIDE&#160;</td><td class="fielddoc"><p>覆盖 </p>
</td></tr>
<tr><td class="fieldname"><a id="a65ba6efea9a512e9ba5c2d10d5e3fba0ab85df04e922fe1dd3c1f0692faeaacef" name="a65ba6efea9a512e9ba5c2d10d5e3fba0ab85df04e922fe1dd3c1f0692faeaacef"></a>SKIP&#160;</td><td class="fielddoc"><p>跳过 </p>
</td></tr>
</table>
<p class="definition">在文件 <a class="el" href="dl__file_8h_source.html">dl_file.h</a><a class="el" href="dl__file_8h_source.html#l00232">232</a> 行定义.</p>
</div>
</div>
<h2 class="groupheader">函数说明</h2>
<a id="a21b1933ea35cbf28b4cce42fce888700" name="a21b1933ea35cbf28b4cce42fce888700"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a21b1933ea35cbf28b4cce42fce888700">&#9670;&#160;</a></span>CheckPathFileModified()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool dl::File::CheckPathFileModified </td>
<td>(</td>
<td class="paramtype">std::string_view</td> <td class="paramname"><span class="paramname"><em>path_name</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdl_1_1_file_1_1_search_rule.html">SearchRule</a> &amp;</td> <td class="paramname"><span class="paramname"><em>rule</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::string_view</td> <td class="paramname"><span class="paramname"><em>cache</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>update</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>判断路径内的文件是否有修改(包括增加、删除文件) </p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">path_name</td><td>路径名称 </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">rule</td><td>匹配规则 </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">cache</td><td>用于生成和保存的文件信息的文件 </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">update</td><td>cache文件如果存在且不匹配,是否更新cache</td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>注解</dt><dd>第一次必然返回真,然后根据文件信息生成cache文件。下次调用会依据cache文件判断路径内文件是否有修改 发生错误返回真 </dd>
<dd>
根据文件修改时间判断 </dd></dl>
</div>
</div>
<a id="a89af12f224acac3614dbbbc32c53bb66" name="a89af12f224acac3614dbbbc32c53bb66"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a89af12f224acac3614dbbbc32c53bb66">&#9670;&#160;</a></span>ConvertMb2U8()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool dl::File::ConvertMb2U8 </td>
<td>(</td>
<td class="paramtype">std::string_view</td> <td class="paramname"><span class="paramname"><em>path_name</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::string_view</td> <td class="paramname"><span class="paramname"><em>out</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>将文本文件从mb转到utf-8 </p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">path_name</td><td>路径名称 </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">out</td><td>输出文件的路径名称 </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>返回值</dt><dd>
<table class="retval">
<tr><td class="paramname">如果失败,会输出日志</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a050ae2e4c1354100a7c2e317e7407f19" name="a050ae2e4c1354100a7c2e317e7407f19"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a050ae2e4c1354100a7c2e317e7407f19">&#9670;&#160;</a></span>Copy()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool dl::File::Copy </td>
<td>(</td>
<td class="paramtype">std::string_view</td> <td class="paramname"><span class="paramname"><em>source</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::string_view</td> <td class="paramname"><span class="paramname"><em>target</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="#a65ba6efea9a512e9ba5c2d10d5e3fba0">CopyMode</a></td> <td class="paramname"><span class="paramname"><em>mode</em></span><span class="paramdefsep"> = </span><span class="paramdefval"><a class="el" href="#a65ba6efea9a512e9ba5c2d10d5e3fba0ab50339a10e1de285ac99d4c3990b8693">CopyMode::NONE</a></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>recursion</em></span><span class="paramdefsep"> = </span><span class="paramdefval">false</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>复制文件或文件夹 </p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">source</td><td>源文件 </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">target</td><td>目标文件 </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">mode</td><td>复制模式 </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">recursion</td><td>递归 </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ac0f557be990b6b800795fa76107689ef" name="ac0f557be990b6b800795fa76107689ef"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac0f557be990b6b800795fa76107689ef">&#9670;&#160;</a></span>CreateFolder()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool dl::File::CreateFolder </td>
<td>(</td>
<td class="paramtype">std::string_view</td> <td class="paramname"><span class="paramname"><em>path</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>创建目录 </p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">path</td><td>路径 </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>返回值</dt><dd>
<table class="retval">
<tr><td class="paramname">目录存在也返回真</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ab8e67825de6beb023ce02d725f7eda9a" name="ab8e67825de6beb023ce02d725f7eda9a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab8e67825de6beb023ce02d725f7eda9a">&#9670;&#160;</a></span>Delete()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool dl::File::Delete </td>
<td>(</td>
<td class="paramtype">std::string_view</td> <td class="paramname"><span class="paramname"><em>path_name</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>all</em></span><span class="paramdefsep"> = </span><span class="paramdefval">false</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>删除文件或路径 </p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">path_name</td><td>路径名称 </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">all</td><td>为真时可以删除非空文件夹 </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>返回值</dt><dd>
<table class="retval">
<tr><td class="paramname">删除失败返回假</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a02a311244c38b5ff3083b8a2435efedd" name="a02a311244c38b5ff3083b8a2435efedd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a02a311244c38b5ff3083b8a2435efedd">&#9670;&#160;</a></span>DeleteContent()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void dl::File::DeleteContent </td>
<td>(</td>
<td class="paramtype">std::string_view</td> <td class="paramname"><span class="paramname"><em>path_name</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>删除文件夹内容,但不删除文件夹 </p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">path_name</td><td>路径名称 </td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>注解</dt><dd>文件夹不存在则什么都不做 </dd></dl>
</div>
</div>
<a id="a7afdc780937a728bb52260dfab167e20" name="a7afdc780937a728bb52260dfab167e20"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7afdc780937a728bb52260dfab167e20">&#9670;&#160;</a></span>Get()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::ifstream dl::File::Get </td>
<td>(</td>
<td class="paramtype">std::string_view</td> <td class="paramname"><span class="paramname"><em>path_name</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>is_binary</em></span><span class="paramdefsep"> = </span><span class="paramdefval">true</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a84b2589d84e66a0ed7f567d0107f9946" name="a84b2589d84e66a0ed7f567d0107f9946"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a84b2589d84e66a0ed7f567d0107f9946">&#9670;&#160;</a></span>GetAbsolute()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string dl::File::GetAbsolute </td>
<td>(</td>
<td class="paramtype">std::string_view</td> <td class="paramname"><span class="paramname"><em>path_name</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>返回绝对路径 </p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">path_name</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>注解</dt><dd>空路径返回空 </dd></dl>
</div>
</div>
<a id="ab131ba95d1079fabc232fbb3452ae132" name="ab131ba95d1079fabc232fbb3452ae132"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab131ba95d1079fabc232fbb3452ae132">&#9670;&#160;</a></span>GetBuffer() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classdl_1_1_buffer.html">Buffer</a> dl::File::GetBuffer </td>
<td>(</td>
<td class="paramtype">std::ifstream &amp;</td> <td class="paramname"><span class="paramname"><em>ifs</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>返回文件内存 </p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">ifs</td><td>文件句柄 </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>返回值</dt><dd>
<table class="retval">
<tr><td class="paramname">需要手动释放内存</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ae7bb62971470fc3c4cdf7bc161a05206" name="ae7bb62971470fc3c4cdf7bc161a05206"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae7bb62971470fc3c4cdf7bc161a05206">&#9670;&#160;</a></span>GetBuffer() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="classdl_1_1_buffer.html">Buffer</a> dl::File::GetBuffer </td>
<td>(</td>
<td class="paramtype">std::string_view</td> <td class="paramname"><span class="paramname"><em>path_name</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>返回文件内存 </p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">path_name</td><td>路径名称 </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>返回值</dt><dd>
<table class="retval">
<tr><td class="paramname">需要手动释放内存</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a22b74cc015e6e1ed05c1455b091807e0" name="a22b74cc015e6e1ed05c1455b091807e0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a22b74cc015e6e1ed05c1455b091807e0">&#9670;&#160;</a></span>GetCrc32()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint32_t dl::File::GetCrc32 </td>
<td>(</td>
<td class="paramtype">std::string_view</td> <td class="paramname"><span class="paramname"><em>path_name</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>返回文件Blake2b值 </p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">path_name</td><td>路径名称 </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">Blake2b</td><td>返回值(512位)</td></tr>
</table>
</dd>
</dl>
<p>效验文件Blake2b值 </p><dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">path_name</td><td>路径名称 </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">digest</td><td>消息摘要(512位)</td></tr>
</table>
</dd>
</dl>
<p>返回文件crc32值 </p><dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">path_name</td><td>路径名称 </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>返回值</dt><dd>
<table class="retval">
<tr><td class="paramname">0代表失败</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a7a699ea40c9ece134967495363f05222" name="a7a699ea40c9ece134967495363f05222"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7a699ea40c9ece134967495363f05222">&#9670;&#160;</a></span>GetExtension()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string dl::File::GetExtension </td>
<td>(</td>
<td class="paramtype">std::string_view</td> <td class="paramname"><span class="paramname"><em>path_name</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>has_dot</em></span><span class="paramdefsep"> = </span><span class="paramdefval">false</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>返回文件后缀 </p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">path_name</td><td></td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">has_dot</td><td>是否含有“.”,比如.txt而不是txt </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a28468f91b9f718653b091db839b241b0" name="a28468f91b9f718653b091db839b241b0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a28468f91b9f718653b091db839b241b0">&#9670;&#160;</a></span>GetFile()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">FILE * dl::File::GetFile </td>
<td>(</td>
<td class="paramtype">std::string_view</td> <td class="paramname"><span class="paramname"><em>path_name</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>is_binary</em></span><span class="paramdefsep"> = </span><span class="paramdefval">true</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>打开一个文件(只读),可能从压缩包内读取 </p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">path_name</td><td>路径名称 </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">binary</td><td>是否以二进制模式打开 </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>返回值</dt><dd>
<table class="retval">
<tr><td class="paramname">文件句柄</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>注解</dt><dd>如果成功读取,则用户需要手动释放文件 </dd></dl>
</div>
</div>
<a id="af89a6e722274226cb17cf6865ba1ad4d" name="af89a6e722274226cb17cf6865ba1ad4d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af89a6e722274226cb17cf6865ba1ad4d">&#9670;&#160;</a></span>GetFileName()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string dl::File::GetFileName </td>
<td>(</td>
<td class="paramtype">std::string_view</td> <td class="paramname"><span class="paramname"><em>path_name</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>返回文件名 包含后缀 </p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">path_name</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>注解</dt><dd>a/b返回ba/b/返回空 </dd></dl>
</div>
</div>
<a id="a944ba155c2c810d67a8ee8ca5efd6a1b" name="a944ba155c2c810d67a8ee8ca5efd6a1b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a944ba155c2c810d67a8ee8ca5efd6a1b">&#9670;&#160;</a></span>GetFilePath()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string dl::File::GetFilePath </td>
<td>(</td>
<td class="paramtype">std::string_view</td> <td class="paramname"><span class="paramname"><em>path_name</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>返回文件所在路径 </p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">path_name</td><td>必须传入右斜杠 </td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>注解</dt><dd>a/b返回a/a/b/返回a/b/a/b/c.txt返回a/b/ </dd></dl>
</div>
</div>
<a id="a7cb61eaef6e197f454cd64c01681dfac" name="a7cb61eaef6e197f454cd64c01681dfac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7cb61eaef6e197f454cd64c01681dfac">&#9670;&#160;</a></span>GetFolderName()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string dl::File::GetFolderName </td>
<td>(</td>
<td class="paramtype">std::string_view</td> <td class="paramname"><span class="paramname"><em>path_name</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>返回路径所在文件夹名 </p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">path_name</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>注解</dt><dd>a/b返回aa/b/返回空 </dd></dl>
</div>
</div>
<a id="a856568eab88642c605e42e29b87a1c6e" name="a856568eab88642c605e42e29b87a1c6e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a856568eab88642c605e42e29b87a1c6e">&#9670;&#160;</a></span>GetLastWriteTime()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">time_t dl::File::GetLastWriteTime </td>
<td>(</td>
<td class="paramtype">std::string_view</td> <td class="paramname"><span class="paramname"><em>path_name</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>返回文件最后修改时间 </p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">path_name</td><td>路径名称 </td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>注解</dt><dd>复制相同文件也会更新,建议使用GetCrc32 </dd></dl>
</div>
</div>
<a id="ab5d568af0e137dc89ec8ed0f5a92457b" name="ab5d568af0e137dc89ec8ed0f5a92457b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab5d568af0e137dc89ec8ed0f5a92457b">&#9670;&#160;</a></span>GetParentPath()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string dl::File::GetParentPath </td>
<td>(</td>
<td class="paramtype">std::string_view</td> <td class="paramname"><span class="paramname"><em>path_name</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>返回上一级路径 </p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">path_name</td><td>路径 </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>返回值</dt><dd>
<table class="retval">
<tr><td class="paramname">失败返回原路径</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a66b12455ef0b35f95b15187bd7904f8f" name="a66b12455ef0b35f95b15187bd7904f8f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a66b12455ef0b35f95b15187bd7904f8f">&#9670;&#160;</a></span>GetPathContent()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void dl::File::GetPathContent </td>
<td>(</td>
<td class="paramtype">std::string_view</td> <td class="paramname"><span class="paramname"><em>path</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; std::string &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>ret</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::string_view</td> <td class="paramname"><span class="paramname"><em>regex</em></span><span class="paramdefsep"> = </span><span class="paramdefval">&quot;&quot;</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>folder</em></span><span class="paramdefsep"> = </span><span class="paramdefval">true</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>file</em></span><span class="paramdefsep"> = </span><span class="paramdefval">true</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>获取文件夹当前内容 </p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">path</td><td>路径 </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">ret</td><td>返回的目录 </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">regex</td><td>正则表达式,例如 .(png|jpg|PNG)$ </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">folder</td><td>是否包含目录 </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>是否包含文件 </td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>注解</dt><dd>排除特定文件写法:^(?!a.png$|b.jpg$).*.(png|jpg)$ </dd></dl>
<dl class="retval"><dt>返回值</dt><dd>
<table class="retval">
<tr><td class="paramname">返回相对路径</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a6895b6ac40510ed6afda659ca290bf9c" name="a6895b6ac40510ed6afda659ca290bf9c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6895b6ac40510ed6afda659ca290bf9c">&#9670;&#160;</a></span>GetPathContentAll()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void dl::File::GetPathContentAll </td>
<td>(</td>
<td class="paramtype">std::string_view</td> <td class="paramname"><span class="paramname"><em>path</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="classdl_1_1_n_tree.html">NTree</a>&lt; std::string &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>ret</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>获取文件夹所有内容 </p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">path</td><td>路径 </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">ret</td><td>返回的目录树 </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="af7e3a8109f74c2c3bb04fbb6394c94bc" name="af7e3a8109f74c2c3bb04fbb6394c94bc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af7e3a8109f74c2c3bb04fbb6394c94bc">&#9670;&#160;</a></span>GetPathFileAll() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void dl::File::GetPathFileAll </td>
<td>(</td>
<td class="paramtype">std::string_view</td> <td class="paramname"><span class="paramname"><em>path</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; std::string &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>ret</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const <a class="el" href="structdl_1_1_file_1_1_search_rule.html">SearchRule</a> &amp;</td> <td class="paramname"><span class="paramname"><em>rule</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>recursion</em></span><span class="paramdefsep"> = </span><span class="paramdefval">true</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>获取文件夹所有文件 </p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">path</td><td>路径 </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">ret</td><td>返回的文件名 </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">rule</td><td>匹配规则 </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">recursion</td><td>递归文件夹 </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>返回值</dt><dd>
<table class="retval">
<tr><td class="paramname">返回相对路径</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a3ee7cd52109759691467c4056ce675f2" name="a3ee7cd52109759691467c4056ce675f2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3ee7cd52109759691467c4056ce675f2">&#9670;&#160;</a></span>GetPathFileAll() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void dl::File::GetPathFileAll </td>
<td>(</td>
<td class="paramtype">std::string_view</td> <td class="paramname"><span class="paramname"><em>path</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::vector&lt; std::string &gt; &amp;</td> <td class="paramname"><span class="paramname"><em>ret</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::string_view</td> <td class="paramname"><span class="paramname"><em>regex</em></span><span class="paramdefsep"> = </span><span class="paramdefval">&quot;&quot;</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>recursion</em></span><span class="paramdefsep"> = </span><span class="paramdefval">true</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>获取文件夹所有文件 </p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">path</td><td>路径 </td></tr>
<tr><td class="paramdir">[out]</td><td class="paramname">ret</td><td>返回的文件名 </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">regex</td><td>正则表达式,例如 .(png|jpg)$ </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">recursion</td><td>递归文件夹 </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>返回值</dt><dd>
<table class="retval">
<tr><td class="paramname">返回相对路径</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="acde2d5b52b91b3d4f6740604f47a4313" name="acde2d5b52b91b3d4f6740604f47a4313"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acde2d5b52b91b3d4f6740604f47a4313">&#9670;&#160;</a></span>GetRelative()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string dl::File::GetRelative </td>
<td>(</td>
<td class="paramtype">std::string_view</td> <td class="paramname"><span class="paramname"><em>path_name</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::string_view</td> <td class="paramname"><span class="paramname"><em>path_base</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>返回相对路径 </p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">path_name</td><td></td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">path_base</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>返回值</dt><dd>
<table class="retval">
<tr><td class="paramname">返回值带有./</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>注解</dt><dd>效率较低,可以使用String::ErasePath移除头部字符串 </dd></dl>
</div>
</div>
<a id="a2c38eaa5c040b78e5df6393d42e8ad82" name="a2c38eaa5c040b78e5df6393d42e8ad82"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2c38eaa5c040b78e5df6393d42e8ad82">&#9670;&#160;</a></span>GetStem()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string dl::File::GetStem </td>
<td>(</td>
<td class="paramtype">std::string_view</td> <td class="paramname"><span class="paramname"><em>path_name</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>返回文件名 不含后缀 </p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">path_name</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>注解</dt><dd>a/b返回ba/b/返回空 </dd></dl>
</div>
</div>
<a id="acef558947516ea7634735cd708280372" name="acef558947516ea7634735cd708280372"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acef558947516ea7634735cd708280372">&#9670;&#160;</a></span>GetString()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string dl::File::GetString </td>
<td>(</td>
<td class="paramtype">std::string_view</td> <td class="paramname"><span class="paramname"><em>path_name</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>按文本读文件 </p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">path_name</td><td>路径名称 </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ac73b5e0cdfedd9f2c98607714cddf643" name="ac73b5e0cdfedd9f2c98607714cddf643"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac73b5e0cdfedd9f2c98607714cddf643">&#9670;&#160;</a></span>InitFileSystem()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void dl::File::InitFileSystem </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
</div>
</div>
<a id="a8a0b12c81b58ca4c96026b6804862eac" name="a8a0b12c81b58ca4c96026b6804862eac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8a0b12c81b58ca4c96026b6804862eac">&#9670;&#160;</a></span>IsEmpty()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool dl::File::IsEmpty </td>
<td>(</td>
<td class="paramtype">std::string_view</td> <td class="paramname"><span class="paramname"><em>path</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>返回文件夹是否为空 </p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">path</td><td>路径 </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>返回值</dt><dd>
<table class="retval">
<tr><td class="paramname">不存在也返回空</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a65a4abe44715791a0dde4aeb6e9497ed" name="a65a4abe44715791a0dde4aeb6e9497ed"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a65a4abe44715791a0dde4aeb6e9497ed">&#9670;&#160;</a></span>IsExist()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool dl::File::IsExist </td>
<td>(</td>
<td class="paramtype">std::string_view</td> <td class="paramname"><span class="paramname"><em>path_name</em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>返回文件是否存在 </p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">path_name</td><td>路径名称 </td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>注解</dt><dd>不包含压缩包内文件 </dd></dl>
</div>
</div>
<a id="a7cb490aa80c8fc8070c104916548bb81" name="a7cb490aa80c8fc8070c104916548bb81"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7cb490aa80c8fc8070c104916548bb81">&#9670;&#160;</a></span>PathCurrent()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string dl::File::PathCurrent </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>返回资源路径 </p>
<dl class="section note"><dt>注解</dt><dd>windows rw exe linux rw android rw PathStorage + "assets/" </dd></dl>
</div>
</div>
<a id="a7ebe295f85a0e5a50db3b6a905ff01b7" name="a7ebe295f85a0e5a50db3b6a905ff01b7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7ebe295f85a0e5a50db3b6a905ff01b7">&#9670;&#160;</a></span>PathPrivate()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string dl::File::PathPrivate </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>返回私有路径 rw </p>
<dl class="section note"><dt>注解</dt><dd>windows AppData/LocalLow/dl_test linux android /data/user/0/com.dl.dl_test/files 安卓容量有限 </dd></dl>
</div>
</div>
<a id="a9ae206b89c0591bba25e0314b4906c80" name="a9ae206b89c0591bba25e0314b4906c80"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9ae206b89c0591bba25e0314b4906c80">&#9670;&#160;</a></span>PathPublic()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string dl::File::PathPublic </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>返回公共路径 rw </p>
<dl class="section note"><dt>注解</dt><dd>windows ProgramData/ linux android /storage/emulated/0/ </dd></dl>
</div>
</div>
<a id="a5764b72cff687878d5a0623be4d3c625" name="a5764b72cff687878d5a0623be4d3c625"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5764b72cff687878d5a0623be4d3c625">&#9670;&#160;</a></span>PathRegular()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::vector&lt; std::string &gt; dl::File::PathRegular </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>返回常用路径 </p>
<dl class="section note"><dt>注解</dt><dd>盘符、我的文件、主目录等 </dd></dl>
</div>
</div>
<a id="ad71bbfbb1c1a90047440abf028aa5ba7" name="ad71bbfbb1c1a90047440abf028aa5ba7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad71bbfbb1c1a90047440abf028aa5ba7">&#9670;&#160;</a></span>PathStorage()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string dl::File::PathStorage </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>返回存储路径 rw </p>
<dl class="section note"><dt>注解</dt><dd>windows AppData/Local/dl_test/ linux android /storage/emulated/0/Android/data/com.dl.dl_test/files </dd></dl>
</div>
</div>
<a id="a36bbd794f2614ed394d18e91fa1e3784" name="a36bbd794f2614ed394d18e91fa1e3784"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a36bbd794f2614ed394d18e91fa1e3784">&#9670;&#160;</a></span>PathStorageRoot()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string dl::File::PathStorageRoot </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>返回存储路径根位置 rw </p>
<dl class="section note"><dt>注解</dt><dd>windows AppData/Local/ linux android 与PathPublic等价 </dd></dl>
</div>
</div>
<a id="ac3db9ec3eb4786fe8d34521a9e88dcfe" name="ac3db9ec3eb4786fe8d34521a9e88dcfe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac3db9ec3eb4786fe8d34521a9e88dcfe">&#9670;&#160;</a></span>PathTemp()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string dl::File::PathTemp </td>
<td>(</td>
<td class="paramname"><span class="paramname"><em></em></span></td><td>)</td>
<td></td>
</tr>
</table>
</div><div class="memdoc">
<p>返回临时路径 rw </p>
<dl class="section note"><dt>注解</dt><dd>这个位置进行文件写入,容易引起误杀,请改用g_factory的接口 安卓无法使用 </dd></dl>
</div>
</div>
<a id="a6f511ec480c6d9ff53bd134d9d63a926" name="a6f511ec480c6d9ff53bd134d9d63a926"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6f511ec480c6d9ff53bd134d9d63a926">&#9670;&#160;</a></span>Rename()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool dl::File::Rename </td>
<td>(</td>
<td class="paramtype">std::string_view</td> <td class="paramname"><span class="paramname"><em>src</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::string_view</td> <td class="paramname"><span class="paramname"><em>tar</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>重命名文件 </p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">src</td><td>路径名称 </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">tar</td><td>修改为 </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a8281f88a2d0a6e3c28610589e3858e84" name="a8281f88a2d0a6e3c28610589e3858e84"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8281f88a2d0a6e3c28610589e3858e84">&#9670;&#160;</a></span>SaveBuffer()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool dl::File::SaveBuffer </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classdl_1_1_buffer_view.html">BufferView</a></td> <td class="paramname"><span class="paramname"><em>buf</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::string_view</td> <td class="paramname"><span class="paramname"><em>path_name</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>将内存保存为文件 </p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">buf</td><td>内存 </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">path_name</td><td>保存路径(文件夹必须存在) </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a4ef6bbd7cbaa49af9256047c8150a526" name="a4ef6bbd7cbaa49af9256047c8150a526"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4ef6bbd7cbaa49af9256047c8150a526">&#9670;&#160;</a></span>SaveString() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool dl::File::SaveString </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classdl_1_1_buffer_view.html">BufferView</a></td> <td class="paramname"><span class="paramname"><em>buf</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::string_view</td> <td class="paramname"><span class="paramname"><em>path_name</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>将字符串保存为文件 </p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">buf</td><td>字符串buf </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">path_name</td><td>保存路径(文件夹必须存在) </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ae4009d848f74b85d922cd73b9870c353" name="ae4009d848f74b85d922cd73b9870c353"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae4009d848f74b85d922cd73b9870c353">&#9670;&#160;</a></span>SaveString() <span class="overload">[2/2]</span></h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">bool dl::File::SaveString </td>
<td>(</td>
<td class="paramtype">std::string_view</td> <td class="paramname"><span class="paramname"><em>str</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::string_view</td> <td class="paramname"><span class="paramname"><em>path_name</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>将字符串保存为文件 </p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">str</td><td>字符串 </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">path_name</td><td>保存路径(文件夹必须存在) </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="a7fd5f1b8db8bad24ab1bb6264dbba0d8" name="a7fd5f1b8db8bad24ab1bb6264dbba0d8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7fd5f1b8db8bad24ab1bb6264dbba0d8">&#9670;&#160;</a></span>Search()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::string dl::File::Search </td>
<td>(</td>
<td class="paramtype">std::string_view</td> <td class="paramname"><span class="paramname"><em>path</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">std::string_view</td> <td class="paramname"><span class="paramname"><em>file_name</em></span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>从路径搜索文件 </p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">path</td><td>字符串 </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">file_name</td><td>文件名 </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>返回值</dt><dd>
<table class="retval">
<tr><td class="paramname">返回完整路径,失败返回空</td><td></td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a id="ac04461b090a20b71d44a5f9bfa859077" name="ac04461b090a20b71d44a5f9bfa859077"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac04461b090a20b71d44a5f9bfa859077">&#9670;&#160;</a></span>Set()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">std::ofstream dl::File::Set </td>
<td>(</td>
<td class="paramtype">std::string_view</td> <td class="paramname"><span class="paramname"><em>path_name</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>is_binary</em></span><span class="paramdefsep"> = </span><span class="paramdefval">true</span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">bool</td> <td class="paramname"><span class="paramname"><em>is_app</em></span><span class="paramdefsep"> = </span><span class="paramdefval">false</span>&#160;)</td>
</tr>
</table>
</div><div class="memdoc">
<p>打开一个文件(只写) </p>
<dl class="params"><dt>参数</dt><dd>
<table class="params">
<tr><td class="paramdir">[in]</td><td class="paramname">path_name</td><td>路径名称 </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">binary</td><td>是否以二进制模式打开 </td></tr>
<tr><td class="paramdir">[in]</td><td class="paramname">is_app</td><td>是否追加模式 </td></tr>
</table>
</dd>
</dl>
<dl class="retval"><dt>返回值</dt><dd>
<table class="retval">
<tr><td class="paramname">文件句柄</td><td></td></tr>
</table>
</dd>
</dl>
<dl class="section note"><dt>注解</dt><dd>如果成功读取,则用户需要手动释放文件 </dd></dl>
</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
制作者&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.13.1
</small></address>
</div><!-- doc-content -->
</body>
</html>