Files
tgstation-server/_i_i_o_manager_8cs_source.html

208 lines
41 KiB
HTML

<!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="en-US">
<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.9.8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>tgstation-server: src/Tgstation.Server.Host/IO/IIOManager.cs Source 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>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.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">tgstation-server<span id="projectnumber">&#160;6.19.3</span>
</div>
<div id="projectbrief">The /tg/station 13 server suite</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.8 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
var searchBox = new SearchBox("searchBox", "search/",'.html');
/* @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('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */
</script>
<div id="main-nav"></div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
$(document).ready(function() { init_codefold(0); });
/* @license-end */
</script>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<div id="MSearchResults">
<div class="SRPage">
<div id="SRIndex">
<div id="SRResults"></div>
<div class="SRStatus" id="Loading">Loading...</div>
<div class="SRStatus" id="Searching">Searching...</div>
<div class="SRStatus" id="NoMatches">No Matches</div>
</div>
</div>
</div>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_34761767c1c3cd212f9d2f80ea0828a8.html">Tgstation.Server.Host</a></li><li class="navelem"><a class="el" href="dir_a536e49cdf631f66733cf2c9791144ce.html">IO</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle"><div class="title">IIOManager.cs</div></div>
</div><!--header-->
<div class="contents">
<a href="_i_i_o_manager_8cs.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="keyword">using </span>System;</div>
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="keyword">using </span>System.Collections.Generic;</div>
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="keyword">using </span>System.IO;</div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="keyword">using </span>System.IO.Abstractions;</div>
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="keyword">using </span>System.Threading;</div>
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="keyword">using </span>System.Threading.Tasks;</div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span> </div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="keyword">namespace </span><a class="code hl_namespace" href="namespace_tgstation_1_1_server_1_1_host_1_1_i_o.html">Tgstation.Server.Host.IO</a></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span>{</div>
<div class="foldopen" id="foldopen00013" data-start="{" data-end="};">
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"><a class="line" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html"> 13</a></span> <span class="keyword">public</span> <span class="keyword">interface </span><a class="code hl_interface" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html">IIOManager</a></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span> {</div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"><a class="line" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#ac9cf68c2d9923564c1cca8b2d97e0876"> 18</a></span> <span class="keywordtype">char</span> <a class="code hl_property" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#ac9cf68c2d9923564c1cca8b2d97e0876">DirectorySeparatorChar</a> { <span class="keyword">get</span>; }</div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span> </div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"><a class="line" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#ac7c21b5c8d1c392f79fb5c89b96abf43"> 23</a></span> <span class="keywordtype">char</span> <a class="code hl_property" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#ac7c21b5c8d1c392f79fb5c89b96abf43">AltDirectorySeparatorChar</a> { <span class="keyword">get</span>; }</div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span> </div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"><a class="line" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#abddea227bd7f20e50d57e258571a6ea4"> 30</a></span> <a class="code hl_interface" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html">IIOManager</a> <a class="code hl_function" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#abddea227bd7f20e50d57e258571a6ea4">CreateResolverForSubdirectory</a>(<span class="keywordtype">string</span> subdirectoryPath);</div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> </div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"><a class="line" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a18a442b5dff16f5e7a730ec354e81d78"> 36</a></span> <span class="keywordtype">string</span> <a class="code hl_function" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a18a442b5dff16f5e7a730ec354e81d78">ResolvePath</a>();</div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span> </div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"><a class="line" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#aef508a4c82215e95c29aa23255fdb01c"> 43</a></span> <span class="keywordtype">string</span> <a class="code hl_function" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#aef508a4c82215e95c29aa23255fdb01c">ResolvePath</a>(<span class="keywordtype">string</span> path);</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> </div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"><a class="line" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a0d6d5a54db205d2d1d45a927d57f5182"> 50</a></span> <span class="keywordtype">string</span> <a class="code hl_function" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a0d6d5a54db205d2d1d45a927d57f5182">GetFileName</a>(<span class="keywordtype">string</span> path);</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> </div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"><a class="line" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#ab6635afaf199a1396a743f3b46eac786"> 57</a></span> <span class="keywordtype">string</span> <a class="code hl_function" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#ab6635afaf199a1396a743f3b46eac786">GetFileNameWithoutExtension</a>(<span class="keywordtype">string</span> path);</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> </div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"><a class="line" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#af05931d02f5f5d95b87a56c0cc60d855"> 64</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#af05931d02f5f5d95b87a56c0cc60d855">PathContainsParentAccess</a>(<span class="keywordtype">string</span> path);</div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> </div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"><a class="line" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a0d9526a8d840f2c00cb203bdebdcb994"> 73</a></span> Task&lt;bool&gt; <a class="code hl_function" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a0d9526a8d840f2c00cb203bdebdcb994">PathIsChildOf</a>(<span class="keywordtype">string</span> parentPath, <span class="keywordtype">string</span> childPath, CancellationToken cancellationToken);</div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> </div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"><a class="line" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#ae6d7a91652aa3732be0945ac09df7339"> 85</a></span> ValueTask <a class="code hl_function" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#ae6d7a91652aa3732be0945ac09df7339">CopyDirectory</a>(</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> IEnumerable&lt;string&gt;? ignore,</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> Func&lt;string, string, ValueTask&gt;? postCopyCallback,</div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> <span class="keywordtype">string</span> src,</div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> <span class="keywordtype">string</span> dest,</div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> <span class="keywordtype">int</span>? taskThrottle,</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> CancellationToken cancellationToken);</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span> </div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"><a class="line" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#ad4de873180481f7afa206b6282158d62"> 99</a></span> Task&lt;bool&gt; <a class="code hl_function" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#ad4de873180481f7afa206b6282158d62">FileExists</a>(<span class="keywordtype">string</span> path, CancellationToken cancellationToken);</div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> </div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"><a class="line" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#aeae08438da658a3c0afddbb7960e4faa"> 107</a></span> Task&lt;bool&gt; <a class="code hl_function" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#aeae08438da658a3c0afddbb7960e4faa">DirectoryExists</a>(<span class="keywordtype">string</span> path, CancellationToken cancellationToken);</div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> </div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"><a class="line" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a267b549fab5803c199a7d37100650e85"> 116</a></span> ValueTask&lt;byte[]&gt; <a class="code hl_function" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a267b549fab5803c199a7d37100650e85">ReadAllBytes</a>(<span class="keywordtype">string</span> path, CancellationToken cancellationToken);</div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> </div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"><a class="line" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a39ebf958ad54ba63a6b74a1d4d75a6f2"> 124</a></span> Task&lt;IReadOnlyList&lt;string&gt;&gt; <a class="code hl_function" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a39ebf958ad54ba63a6b74a1d4d75a6f2">GetDirectories</a>(<span class="keywordtype">string</span> path, CancellationToken cancellationToken);</div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> </div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"><a class="line" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a0749e071c50bd39000bb7db1d02fc2e3"> 132</a></span> Task&lt;IReadOnlyList&lt;string&gt;&gt; <a class="code hl_function" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a0749e071c50bd39000bb7db1d02fc2e3">GetFiles</a>(<span class="keywordtype">string</span> path, CancellationToken cancellationToken);</div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> </div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"><a class="line" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a9d01b47120756f55a482c198a85bf45f"> 139</a></span> <a class="code hl_class" href="class_stream.html">Stream</a> <a class="code hl_function" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a9d01b47120756f55a482c198a85bf45f">CreateAsyncSequentialWriteStream</a>(<span class="keywordtype">string</span> path);</div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> </div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"><a class="line" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a055862f1ac46e7aaf3b68a936fedb9c1"> 148</a></span> <a class="code hl_class" href="class_stream.html">Stream</a> <a class="code hl_function" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a055862f1ac46e7aaf3b68a936fedb9c1">CreateAsyncReadStream</a>(<span class="keywordtype">string</span> path, <span class="keywordtype">bool</span> sequential, <span class="keywordtype">bool</span> shareWrite);</div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span> </div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"><a class="line" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a9aeb8b83ea3f4b13a183b6ac55b35a70"> 157</a></span> ValueTask <a class="code hl_function" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a9aeb8b83ea3f4b13a183b6ac55b35a70">WriteAllBytes</a>(<span class="keywordtype">string</span> path, <span class="keywordtype">byte</span>[] contents, CancellationToken cancellationToken);</div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> </div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"><a class="line" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a8d4da0f27216a39e171512e78611dd9d"> 166</a></span> ValueTask <a class="code hl_function" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a8d4da0f27216a39e171512e78611dd9d">CopyFile</a>(<span class="keywordtype">string</span> src, <span class="keywordtype">string</span> dest, CancellationToken cancellationToken);</div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> </div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"><a class="line" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a691970cc91e5576b06ed9ce14e51d9b8"> 174</a></span> <span class="keywordtype">string</span> <a class="code hl_function" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a691970cc91e5576b06ed9ce14e51d9b8">GetDirectoryName</a>(<span class="keywordtype">string</span> path);</div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> </div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"><a class="line" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#ad71a483a00641af2838418f677801df5"> 184</a></span> Task&lt;List&lt;string&gt;&gt; <a class="code hl_function" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#ad71a483a00641af2838418f677801df5">GetFilesWithExtension</a>(<span class="keywordtype">string</span> path, <span class="keywordtype">string</span> extension, <span class="keywordtype">bool</span> recursive, CancellationToken cancellationToken);</div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span> </div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"><a class="line" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a6ca322ea63f5693487917c1ee71c707a"> 192</a></span> Task <a class="code hl_function" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a6ca322ea63f5693487917c1ee71c707a">DeleteFile</a>(<span class="keywordtype">string</span> path, CancellationToken cancellationToken);</div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span> </div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"><a class="line" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a69aa1b9dbeb6af3744e568095c4376e7"> 200</a></span> Task <a class="code hl_function" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a69aa1b9dbeb6af3744e568095c4376e7">CreateDirectory</a>(<span class="keywordtype">string</span> path, CancellationToken cancellationToken);</div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span> </div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"><a class="line" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#ad3e0dda4b7fbad4c77f48ba3b2681dc7"> 208</a></span> Task <a class="code hl_function" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#ad3e0dda4b7fbad4c77f48ba3b2681dc7">DeleteDirectory</a>(<span class="keywordtype">string</span> path, CancellationToken cancellationToken);</div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span> </div>
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"><a class="line" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a286f4eb5c679683b7e519847a6c3574e"> 215</a></span> <span class="keywordtype">string</span> <a class="code hl_function" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a286f4eb5c679683b7e519847a6c3574e">ConcatPath</a>(params <span class="keywordtype">string</span>[] paths);</div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> </div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"><a class="line" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a2dff052035f4d3d0c689d0e89d8deecd"> 224</a></span> Task <a class="code hl_function" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a2dff052035f4d3d0c689d0e89d8deecd">MoveFile</a>(<span class="keywordtype">string</span> source, <span class="keywordtype">string</span> destination, CancellationToken cancellationToken);</div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> </div>
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"><a class="line" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#ad8dc6ae8e69047b801a7344b17d0cc37"> 233</a></span> Task <a class="code hl_function" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#ad8dc6ae8e69047b801a7344b17d0cc37">MoveDirectory</a>(<span class="keywordtype">string</span> source, <span class="keywordtype">string</span> destination, CancellationToken cancellationToken);</div>
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span> </div>
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"><a class="line" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a4bf093ff62596ae9c3f3ff4da173d224"> 242</a></span> ValueTask <a class="code hl_function" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a4bf093ff62596ae9c3f3ff4da173d224">ZipToDirectory</a>(<span class="keywordtype">string</span> path, <a class="code hl_class" href="class_stream.html">Stream</a> zipFile, CancellationToken cancellationToken);</div>
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> </div>
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"><a class="line" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a912c1db298c553ee69df3fa0dfe9ad85"> 250</a></span> Task&lt;DateTimeOffset&gt; <a class="code hl_function" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a912c1db298c553ee69df3fa0dfe9ad85">GetLastModified</a>(<span class="keywordtype">string</span> path, CancellationToken cancellationToken);</div>
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> </div>
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"><a class="line" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a22cfc99f22f5d6d338d307a6ed7d6e70"> 258</a></span> Task&lt;IDirectoryInfo&gt; <a class="code hl_function" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a22cfc99f22f5d6d338d307a6ed7d6e70">DirectoryInfo</a>(<span class="keywordtype">string</span> path, CancellationToken cancellationToken);</div>
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span> </div>
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"><a class="line" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a661fd448a209ac58937b887023156ac7"> 265</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a661fd448a209ac58937b887023156ac7">IsPathRooted</a>(<span class="keywordtype">string</span> path);</div>
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span> }</div>
</div>
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span>}</div>
<div class="ttc" id="aclass_stream_html"><div class="ttname"><a href="class_stream.html">Stream</a></div></div>
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager_html"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html">Tgstation.Server.Host.IO.IIOManager</a></div><div class="ttdoc">Interface for using filesystems.</div><div class="ttdef"><b>Definition</b> <a href="_i_i_o_manager_8cs_source.html#l00013">IIOManager.cs:14</a></div></div>
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager_html_a055862f1ac46e7aaf3b68a936fedb9c1"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a055862f1ac46e7aaf3b68a936fedb9c1">Tgstation.Server.Host.IO.IIOManager.CreateAsyncReadStream</a></div><div class="ttdeci">Stream CreateAsyncReadStream(string path, bool sequential, bool shareWrite)</div><div class="ttdoc">Creates an asynchronous FileStream for sequential reading.</div></div>
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager_html_a0749e071c50bd39000bb7db1d02fc2e3"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a0749e071c50bd39000bb7db1d02fc2e3">Tgstation.Server.Host.IO.IIOManager.GetFiles</a></div><div class="ttdeci">Task&lt; IReadOnlyList&lt; string &gt; &gt; GetFiles(string path, CancellationToken cancellationToken)</div><div class="ttdoc">Returns full file names in a given path .</div></div>
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager_html_a0d6d5a54db205d2d1d45a927d57f5182"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a0d6d5a54db205d2d1d45a927d57f5182">Tgstation.Server.Host.IO.IIOManager.GetFileName</a></div><div class="ttdeci">string GetFileName(string path)</div><div class="ttdoc">Gets the file name portion of a path .</div></div>
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager_html_a0d9526a8d840f2c00cb203bdebdcb994"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a0d9526a8d840f2c00cb203bdebdcb994">Tgstation.Server.Host.IO.IIOManager.PathIsChildOf</a></div><div class="ttdeci">Task&lt; bool &gt; PathIsChildOf(string parentPath, string childPath, CancellationToken cancellationToken)</div><div class="ttdoc">Check if a given parentPath is a parent of a given parentPath .</div></div>
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager_html_a18a442b5dff16f5e7a730ec354e81d78"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a18a442b5dff16f5e7a730ec354e81d78">Tgstation.Server.Host.IO.IIOManager.ResolvePath</a></div><div class="ttdeci">string ResolvePath()</div><div class="ttdoc">Retrieve the full path of the current working directory.</div></div>
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager_html_a22cfc99f22f5d6d338d307a6ed7d6e70"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a22cfc99f22f5d6d338d307a6ed7d6e70">Tgstation.Server.Host.IO.IIOManager.DirectoryInfo</a></div><div class="ttdeci">Task&lt; IDirectoryInfo &gt; DirectoryInfo(string path, CancellationToken cancellationToken)</div><div class="ttdoc">Gets a IDirectoryInfo for the given path .</div></div>
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager_html_a267b549fab5803c199a7d37100650e85"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a267b549fab5803c199a7d37100650e85">Tgstation.Server.Host.IO.IIOManager.ReadAllBytes</a></div><div class="ttdeci">ValueTask&lt; byte[]&gt; ReadAllBytes(string path, CancellationToken cancellationToken)</div><div class="ttdoc">Returns all the contents of a file at path as a byte array.</div></div>
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager_html_a286f4eb5c679683b7e519847a6c3574e"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a286f4eb5c679683b7e519847a6c3574e">Tgstation.Server.Host.IO.IIOManager.ConcatPath</a></div><div class="ttdeci">string ConcatPath(params string[] paths)</div><div class="ttdoc">Combines an array of strings into a path.</div></div>
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager_html_a2dff052035f4d3d0c689d0e89d8deecd"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a2dff052035f4d3d0c689d0e89d8deecd">Tgstation.Server.Host.IO.IIOManager.MoveFile</a></div><div class="ttdeci">Task MoveFile(string source, string destination, CancellationToken cancellationToken)</div><div class="ttdoc">Moves a file at source to destination .</div></div>
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager_html_a39ebf958ad54ba63a6b74a1d4d75a6f2"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a39ebf958ad54ba63a6b74a1d4d75a6f2">Tgstation.Server.Host.IO.IIOManager.GetDirectories</a></div><div class="ttdeci">Task&lt; IReadOnlyList&lt; string &gt; &gt; GetDirectories(string path, CancellationToken cancellationToken)</div><div class="ttdoc">Returns full directory names in a given path .</div></div>
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager_html_a4bf093ff62596ae9c3f3ff4da173d224"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a4bf093ff62596ae9c3f3ff4da173d224">Tgstation.Server.Host.IO.IIOManager.ZipToDirectory</a></div><div class="ttdeci">ValueTask ZipToDirectory(string path, Stream zipFile, CancellationToken cancellationToken)</div><div class="ttdoc">Extract a set of zipFile to a given path .</div></div>
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager_html_a661fd448a209ac58937b887023156ac7"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a661fd448a209ac58937b887023156ac7">Tgstation.Server.Host.IO.IIOManager.IsPathRooted</a></div><div class="ttdeci">bool IsPathRooted(string path)</div><div class="ttdoc">Check if a given path is at the root level of the filesystem.</div></div>
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager_html_a691970cc91e5576b06ed9ce14e51d9b8"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a691970cc91e5576b06ed9ce14e51d9b8">Tgstation.Server.Host.IO.IIOManager.GetDirectoryName</a></div><div class="ttdeci">string GetDirectoryName(string path)</div><div class="ttdoc">Gets the directory portion of a given path .</div></div>
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager_html_a69aa1b9dbeb6af3744e568095c4376e7"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a69aa1b9dbeb6af3744e568095c4376e7">Tgstation.Server.Host.IO.IIOManager.CreateDirectory</a></div><div class="ttdeci">Task CreateDirectory(string path, CancellationToken cancellationToken)</div><div class="ttdoc">Create a directory at path .</div></div>
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager_html_a6ca322ea63f5693487917c1ee71c707a"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a6ca322ea63f5693487917c1ee71c707a">Tgstation.Server.Host.IO.IIOManager.DeleteFile</a></div><div class="ttdeci">Task DeleteFile(string path, CancellationToken cancellationToken)</div><div class="ttdoc">Deletes a file at path .</div></div>
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager_html_a8d4da0f27216a39e171512e78611dd9d"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a8d4da0f27216a39e171512e78611dd9d">Tgstation.Server.Host.IO.IIOManager.CopyFile</a></div><div class="ttdeci">ValueTask CopyFile(string src, string dest, CancellationToken cancellationToken)</div><div class="ttdoc">Copy a file from src to dest .</div></div>
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager_html_a912c1db298c553ee69df3fa0dfe9ad85"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a912c1db298c553ee69df3fa0dfe9ad85">Tgstation.Server.Host.IO.IIOManager.GetLastModified</a></div><div class="ttdeci">Task&lt; DateTimeOffset &gt; GetLastModified(string path, CancellationToken cancellationToken)</div><div class="ttdoc">Get the DateTimeOffset of when a given path was last modified.</div></div>
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager_html_a9aeb8b83ea3f4b13a183b6ac55b35a70"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a9aeb8b83ea3f4b13a183b6ac55b35a70">Tgstation.Server.Host.IO.IIOManager.WriteAllBytes</a></div><div class="ttdeci">ValueTask WriteAllBytes(string path, byte[] contents, CancellationToken cancellationToken)</div><div class="ttdoc">Writes some contents to a file at path overwriting previous content.</div></div>
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager_html_a9d01b47120756f55a482c198a85bf45f"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#a9d01b47120756f55a482c198a85bf45f">Tgstation.Server.Host.IO.IIOManager.CreateAsyncSequentialWriteStream</a></div><div class="ttdeci">Stream CreateAsyncSequentialWriteStream(string path)</div><div class="ttdoc">Creates an asynchronous FileStream for sequential writing.</div></div>
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager_html_ab6635afaf199a1396a743f3b46eac786"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#ab6635afaf199a1396a743f3b46eac786">Tgstation.Server.Host.IO.IIOManager.GetFileNameWithoutExtension</a></div><div class="ttdeci">string GetFileNameWithoutExtension(string path)</div><div class="ttdoc">Gets the file name portion of a path with.</div></div>
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager_html_abddea227bd7f20e50d57e258571a6ea4"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#abddea227bd7f20e50d57e258571a6ea4">Tgstation.Server.Host.IO.IIOManager.CreateResolverForSubdirectory</a></div><div class="ttdeci">IIOManager CreateResolverForSubdirectory(string subdirectoryPath)</div><div class="ttdoc">Create a new IIOManager that resolves paths to the specified subdirectoryPath .</div></div>
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager_html_ac7c21b5c8d1c392f79fb5c89b96abf43"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#ac7c21b5c8d1c392f79fb5c89b96abf43">Tgstation.Server.Host.IO.IIOManager.AltDirectorySeparatorChar</a></div><div class="ttdeci">char AltDirectorySeparatorChar</div><div class="ttdoc">Gets the alternative directory separator character.</div><div class="ttdef"><b>Definition</b> <a href="_i_i_o_manager_8cs_source.html#l00023">IIOManager.cs:23</a></div></div>
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager_html_ac9cf68c2d9923564c1cca8b2d97e0876"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#ac9cf68c2d9923564c1cca8b2d97e0876">Tgstation.Server.Host.IO.IIOManager.DirectorySeparatorChar</a></div><div class="ttdeci">char DirectorySeparatorChar</div><div class="ttdoc">Gets the primary directory separator character.</div><div class="ttdef"><b>Definition</b> <a href="_i_i_o_manager_8cs_source.html#l00018">IIOManager.cs:18</a></div></div>
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager_html_ad3e0dda4b7fbad4c77f48ba3b2681dc7"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#ad3e0dda4b7fbad4c77f48ba3b2681dc7">Tgstation.Server.Host.IO.IIOManager.DeleteDirectory</a></div><div class="ttdeci">Task DeleteDirectory(string path, CancellationToken cancellationToken)</div><div class="ttdoc">Recursively delete a directory, removes and does not enter any symlinks encounterd.</div></div>
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager_html_ad4de873180481f7afa206b6282158d62"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#ad4de873180481f7afa206b6282158d62">Tgstation.Server.Host.IO.IIOManager.FileExists</a></div><div class="ttdeci">Task&lt; bool &gt; FileExists(string path, CancellationToken cancellationToken)</div><div class="ttdoc">Check that the file at path exists.</div></div>
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager_html_ad71a483a00641af2838418f677801df5"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#ad71a483a00641af2838418f677801df5">Tgstation.Server.Host.IO.IIOManager.GetFilesWithExtension</a></div><div class="ttdeci">Task&lt; List&lt; string &gt; &gt; GetFilesWithExtension(string path, string extension, bool recursive, CancellationToken cancellationToken)</div><div class="ttdoc">Gets a list of files in path with the given extension .</div></div>
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager_html_ad8dc6ae8e69047b801a7344b17d0cc37"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#ad8dc6ae8e69047b801a7344b17d0cc37">Tgstation.Server.Host.IO.IIOManager.MoveDirectory</a></div><div class="ttdeci">Task MoveDirectory(string source, string destination, CancellationToken cancellationToken)</div><div class="ttdoc">Moves a directory at source to destination .</div></div>
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager_html_ae6d7a91652aa3732be0945ac09df7339"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#ae6d7a91652aa3732be0945ac09df7339">Tgstation.Server.Host.IO.IIOManager.CopyDirectory</a></div><div class="ttdeci">ValueTask CopyDirectory(IEnumerable&lt; string &gt;? ignore, Func&lt; string, string, ValueTask &gt;? postCopyCallback, string src, string dest, int? taskThrottle, CancellationToken cancellationToken)</div><div class="ttdoc">Copies a directory from src to dest .</div></div>
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager_html_aeae08438da658a3c0afddbb7960e4faa"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#aeae08438da658a3c0afddbb7960e4faa">Tgstation.Server.Host.IO.IIOManager.DirectoryExists</a></div><div class="ttdeci">Task&lt; bool &gt; DirectoryExists(string path, CancellationToken cancellationToken)</div><div class="ttdoc">Check that the directory at path exists.</div></div>
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager_html_aef508a4c82215e95c29aa23255fdb01c"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#aef508a4c82215e95c29aa23255fdb01c">Tgstation.Server.Host.IO.IIOManager.ResolvePath</a></div><div class="ttdeci">string ResolvePath(string path)</div><div class="ttdoc">Retrieve the full path of some path given a relative path. Must be used before passing relative path...</div></div>
<div class="ttc" id="ainterface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager_html_af05931d02f5f5d95b87a56c0cc60d855"><div class="ttname"><a href="interface_tgstation_1_1_server_1_1_host_1_1_i_o_1_1_i_i_o_manager.html#af05931d02f5f5d95b87a56c0cc60d855">Tgstation.Server.Host.IO.IIOManager.PathContainsParentAccess</a></div><div class="ttdeci">bool PathContainsParentAccess(string path)</div><div class="ttdoc">Check if a path contains the '..' parent directory accessor.</div></div>
<div class="ttc" id="anamespace_tgstation_1_1_server_1_1_host_1_1_i_o_html"><div class="ttname"><a href="namespace_tgstation_1_1_server_1_1_host_1_1_i_o.html">Tgstation.Server.Host.IO</a></div><div class="ttdef"><b>Definition</b> <a href="_buffered_file_stream_provider_8cs_source.html#l00008">BufferedFileStreamProvider.cs:9</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by&#160;<a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.8
</small></address>
</body>
</html>