blob: 9bc6a1c8e918916ba6611e903f3f09cb32d2f296 [file] [log] [blame]
<!DOCTYPE html>
<html lang="en" data-content_root="" >
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
<title>Filesystems &#8212; Apache Arrow v17.0.0.dev52</title>
<script data-cfasync="false">
document.documentElement.dataset.mode = localStorage.getItem("mode") || "";
document.documentElement.dataset.theme = localStorage.getItem("theme") || "light";
</script>
<!-- Loaded before other Sphinx assets -->
<link href="../../_static/styles/theme.css?digest=8d27b9dea8ad943066ae" rel="stylesheet" />
<link href="../../_static/styles/bootstrap.css?digest=8d27b9dea8ad943066ae" rel="stylesheet" />
<link href="../../_static/styles/pydata-sphinx-theme.css?digest=8d27b9dea8ad943066ae" rel="stylesheet" />
<link href="../../_static/vendor/fontawesome/6.5.1/css/all.min.css?digest=8d27b9dea8ad943066ae" rel="stylesheet" />
<link rel="preload" as="font" type="font/woff2" crossorigin href="../../_static/vendor/fontawesome/6.5.1/webfonts/fa-solid-900.woff2" />
<link rel="preload" as="font" type="font/woff2" crossorigin href="../../_static/vendor/fontawesome/6.5.1/webfonts/fa-brands-400.woff2" />
<link rel="preload" as="font" type="font/woff2" crossorigin href="../../_static/vendor/fontawesome/6.5.1/webfonts/fa-regular-400.woff2" />
<link rel="stylesheet" type="text/css" href="../../_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="../../_static/copybutton.css" />
<link rel="stylesheet" type="text/css" href="../../_static/design-style.1e8bd061cd6da7fc9cf755528e8ffc24.min.css" />
<link rel="stylesheet" type="text/css" href="../../_static/theme_overrides.css" />
<!-- Pre-loaded scripts that we'll load fully later -->
<link rel="preload" as="script" href="../../_static/scripts/bootstrap.js?digest=8d27b9dea8ad943066ae" />
<link rel="preload" as="script" href="../../_static/scripts/pydata-sphinx-theme.js?digest=8d27b9dea8ad943066ae" />
<script src="../../_static/vendor/fontawesome/6.5.1/js/all.min.js?digest=8d27b9dea8ad943066ae"></script>
<script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
<script src="../../_static/doctools.js"></script>
<script src="../../_static/sphinx_highlight.js"></script>
<script src="../../_static/clipboard.min.js"></script>
<script src="../../_static/copybutton.js"></script>
<script src="../../_static/design-tabs.js"></script>
<script>DOCUMENTATION_OPTIONS.pagename = 'cpp/api/filesystem';</script>
<script>
DOCUMENTATION_OPTIONS.theme_version = '0.15.2';
DOCUMENTATION_OPTIONS.theme_switcher_json_url = '/docs/_static/versions.json';
DOCUMENTATION_OPTIONS.theme_switcher_version_match = 'dev/';
DOCUMENTATION_OPTIONS.show_version_warning_banner = true;
</script>
<link rel="canonical" href="https://arrow.apache.org/docs/cpp/api/filesystem.html" />
<link rel="icon" href="../../_static/favicon.ico"/>
<link rel="index" title="Index" href="../../genindex.html" />
<link rel="search" title="Search" href="../../search.html" />
<link rel="next" title="Dataset" href="dataset.html" />
<link rel="prev" title="Arrow Flight SQL" href="flightsql.html" />
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<meta name="docsearch:language" content="en"/>
<!-- Matomo -->
<script>
var _paq = window._paq = window._paq || [];
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
/* We explicitly disable cookie tracking to avoid privacy issues */
_paq.push(['disableCookies']);
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="https://analytics.apache.org/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '20']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<!-- End Matomo Code -->
</head>
<body data-bs-spy="scroll" data-bs-target=".bd-toc-nav" data-offset="180" data-bs-root-margin="0px 0px -60%" data-default-mode="">
<a id="pst-skip-link" class="skip-link" href="#main-content">Skip to main content</a>
<div id="pst-scroll-pixel-helper"></div>
<button type="button" class="btn rounded-pill" id="pst-back-to-top">
<i class="fa-solid fa-arrow-up"></i>
Back to top
</button>
<input type="checkbox"
class="sidebar-toggle"
name="__primary"
id="__primary"/>
<label class="overlay overlay-primary" for="__primary"></label>
<input type="checkbox"
class="sidebar-toggle"
name="__secondary"
id="__secondary"/>
<label class="overlay overlay-secondary" for="__secondary"></label>
<div class="search-button__wrapper">
<div class="search-button__overlay"></div>
<div class="search-button__search-container">
<form class="bd-search d-flex align-items-center"
action="../../search.html"
method="get">
<i class="fa-solid fa-magnifying-glass"></i>
<input type="search"
class="form-control"
name="q"
id="search-input"
placeholder="Search the docs ..."
aria-label="Search the docs ..."
autocomplete="off"
autocorrect="off"
autocapitalize="off"
spellcheck="false"/>
<span class="search-button__kbd-shortcut"><kbd class="kbd-shortcut__modifier">Ctrl</kbd>+<kbd>K</kbd></span>
</form></div>
</div>
<header class="bd-header navbar navbar-expand-lg bd-navbar">
<div class="bd-header__inner bd-page-width">
<label class="sidebar-toggle primary-toggle" for="__primary">
<span class="fa-solid fa-bars"></span>
</label>
<div class="col-lg-3 navbar-header-items__start">
<div class="navbar-item">
<a class="navbar-brand logo" href="../../index.html">
<img src="../../_static/arrow.png" class="logo__image only-light" alt="Apache Arrow v17.0.0.dev52 - Home"/>
<script>document.write(`<img src="../../_static/arrow-dark.png" class="logo__image only-dark" alt="Apache Arrow v17.0.0.dev52 - Home"/>`);</script>
</a></div>
</div>
<div class="col-lg-9 navbar-header-items">
<div class="me-auto navbar-header-items__center">
<div class="navbar-item">
<nav class="navbar-nav">
<ul class="bd-navbar-elements navbar-nav">
<li class="nav-item">
<a class="nav-link nav-internal" href="../../format/index.html">
Specifications
</a>
</li>
<li class="nav-item">
<a class="nav-link nav-internal" href="../../developers/index.html">
Development
</a>
</li>
<li class="nav-item dropdown">
<button class="btn dropdown-toggle nav-item" type="button" data-bs-toggle="dropdown" aria-expanded="false" aria-controls="pst-nav-more-links">
Implementations
</button>
<ul id="pst-nav-more-links" class="dropdown-menu">
<li class="nav-item">
<a class="nav-link dropdown-item nav-internal" href="../../c_glib/index.html">
C/GLib
</a>
</li>
<li class="nav-item current active">
<a class="nav-link dropdown-item nav-internal" href="../index.html">
C++
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://github.com/apache/arrow/blob/main/csharp/README.md">
C#
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://pkg.go.dev/github.com/apache/arrow/go/v17">
Go
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-internal" href="../../java/index.html">
Java
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-internal" href="../../js/index.html">
JavaScript
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://arrow.apache.org/julia/">
Julia
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://github.com/apache/arrow/blob/main/matlab/README.md">
MATLAB
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://arrow.apache.org/nanoarrow/">
nanoarrow
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-internal" href="../../python/index.html">
Python
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-internal" href="../../r/index.html">
R
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://github.com/apache/arrow/blob/main/ruby/README.md">
Ruby
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://docs.rs/crate/arrow/">
Rust
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-internal" href="../../status.html">
Implementation Status
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://arrow.apache.org/cookbook/cpp/">
C++ cookbook
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://arrow.apache.org/cookbook/java/">
Java cookbook
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://arrow.apache.org/cookbook/py/">
Python cookbook
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://arrow.apache.org/cookbook/r/">
R cookbook
</a>
</li>
</ul>
</li>
</ul>
</nav></div>
</div>
<div class="navbar-header-items__end">
<div class="navbar-item navbar-persistent--container">
<script>
document.write(`
<button class="btn navbar-btn search-button-field search-button__button" title="Search" aria-label="Search" data-bs-placement="bottom" data-bs-toggle="tooltip">
<i class="fa-solid fa-magnifying-glass"></i>
<span class="search-button__default-text">Search</span>
<span class="search-button__kbd-shortcut"><kbd class="kbd-shortcut__modifier">Ctrl</kbd>+<kbd class="kbd-shortcut__modifier">K</kbd></span>
</button>
`);
</script>
</div>
<div class="navbar-item">
<script>
document.write(`
<div class="version-switcher__container dropdown">
<button id="pst-version-switcher-button-2"
type="button"
class="version-switcher__button btn btn-sm navbar-btn dropdown-toggle"
data-bs-toggle="dropdown"
aria-haspopup="listbox"
aria-controls="pst-version-switcher-list-2"
aria-label="Version switcher list"
>
Choose version <!-- this text may get changed later by javascript -->
<span class="caret"></span>
</button>
<div id="pst-version-switcher-list-2"
class="version-switcher__menu dropdown-menu list-group-flush py-0"
role="listbox" aria-labelledby="pst-version-switcher-button-2">
<!-- dropdown will be populated by javascript on page load -->
</div>
</div>
`);
</script></div>
<div class="navbar-item">
<script>
document.write(`
<button class="btn btn-sm navbar-btn theme-switch-button" title="light/dark" aria-label="light/dark" data-bs-placement="bottom" data-bs-toggle="tooltip">
<span class="theme-switch nav-link" data-mode="light"><i class="fa-solid fa-sun fa-lg"></i></span>
<span class="theme-switch nav-link" data-mode="dark"><i class="fa-solid fa-moon fa-lg"></i></span>
<span class="theme-switch nav-link" data-mode="auto"><i class="fa-solid fa-circle-half-stroke fa-lg"></i></span>
</button>
`);
</script></div>
<div class="navbar-item"><ul class="navbar-icon-links navbar-nav"
aria-label="Icon Links">
<li class="nav-item">
<a href="https://github.com/apache/arrow" title="GitHub" class="nav-link" rel="noopener" target="_blank" data-bs-toggle="tooltip" data-bs-placement="bottom"><span><i class="fa-brands fa-square-github fa-lg" aria-hidden="true"></i></span>
<span class="sr-only">GitHub</span></a>
</li>
<li class="nav-item">
<a href="https://twitter.com/ApacheArrow" title="X" class="nav-link" rel="noopener" target="_blank" data-bs-toggle="tooltip" data-bs-placement="bottom"><span><i class="fa-brands fa-square-x-twitter fa-lg" aria-hidden="true"></i></span>
<span class="sr-only">X</span></a>
</li>
</ul></div>
</div>
</div>
<div class="navbar-persistent--mobile">
<script>
document.write(`
<button class="btn navbar-btn search-button-field search-button__button" title="Search" aria-label="Search" data-bs-placement="bottom" data-bs-toggle="tooltip">
<i class="fa-solid fa-magnifying-glass"></i>
<span class="search-button__default-text">Search</span>
<span class="search-button__kbd-shortcut"><kbd class="kbd-shortcut__modifier">Ctrl</kbd>+<kbd class="kbd-shortcut__modifier">K</kbd></span>
</button>
`);
</script>
</div>
<label class="sidebar-toggle secondary-toggle" for="__secondary" tabindex="0">
<span class="fa-solid fa-outdent"></span>
</label>
</div>
</header>
<div class="bd-container">
<div class="bd-container__inner bd-page-width">
<div class="bd-sidebar-primary bd-sidebar">
<div class="sidebar-header-items sidebar-primary__section">
<div class="sidebar-header-items__center">
<div class="navbar-item">
<nav class="navbar-nav">
<ul class="bd-navbar-elements navbar-nav">
<li class="nav-item">
<a class="nav-link nav-internal" href="../../format/index.html">
Specifications
</a>
</li>
<li class="nav-item">
<a class="nav-link nav-internal" href="../../developers/index.html">
Development
</a>
</li>
<li class="nav-item dropdown">
<button class="btn dropdown-toggle nav-item" type="button" data-bs-toggle="dropdown" aria-expanded="false" aria-controls="pst-nav-more-links-2">
Implementations
</button>
<ul id="pst-nav-more-links-2" class="dropdown-menu">
<li class="nav-item">
<a class="nav-link dropdown-item nav-internal" href="../../c_glib/index.html">
C/GLib
</a>
</li>
<li class="nav-item current active">
<a class="nav-link dropdown-item nav-internal" href="../index.html">
C++
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://github.com/apache/arrow/blob/main/csharp/README.md">
C#
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://pkg.go.dev/github.com/apache/arrow/go/v17">
Go
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-internal" href="../../java/index.html">
Java
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-internal" href="../../js/index.html">
JavaScript
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://arrow.apache.org/julia/">
Julia
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://github.com/apache/arrow/blob/main/matlab/README.md">
MATLAB
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://arrow.apache.org/nanoarrow/">
nanoarrow
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-internal" href="../../python/index.html">
Python
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-internal" href="../../r/index.html">
R
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://github.com/apache/arrow/blob/main/ruby/README.md">
Ruby
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://docs.rs/crate/arrow/">
Rust
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-internal" href="../../status.html">
Implementation Status
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://arrow.apache.org/cookbook/cpp/">
C++ cookbook
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://arrow.apache.org/cookbook/java/">
Java cookbook
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://arrow.apache.org/cookbook/py/">
Python cookbook
</a>
</li>
<li class="nav-item">
<a class="nav-link dropdown-item nav-external" href="https://arrow.apache.org/cookbook/r/">
R cookbook
</a>
</li>
</ul>
</li>
</ul>
</nav></div>
</div>
<div class="sidebar-header-items__end">
<div class="navbar-item">
<script>
document.write(`
<div class="version-switcher__container dropdown">
<button id="pst-version-switcher-button-3"
type="button"
class="version-switcher__button btn btn-sm navbar-btn dropdown-toggle"
data-bs-toggle="dropdown"
aria-haspopup="listbox"
aria-controls="pst-version-switcher-list-3"
aria-label="Version switcher list"
>
Choose version <!-- this text may get changed later by javascript -->
<span class="caret"></span>
</button>
<div id="pst-version-switcher-list-3"
class="version-switcher__menu dropdown-menu list-group-flush py-0"
role="listbox" aria-labelledby="pst-version-switcher-button-3">
<!-- dropdown will be populated by javascript on page load -->
</div>
</div>
`);
</script></div>
<div class="navbar-item">
<script>
document.write(`
<button class="btn btn-sm navbar-btn theme-switch-button" title="light/dark" aria-label="light/dark" data-bs-placement="bottom" data-bs-toggle="tooltip">
<span class="theme-switch nav-link" data-mode="light"><i class="fa-solid fa-sun fa-lg"></i></span>
<span class="theme-switch nav-link" data-mode="dark"><i class="fa-solid fa-moon fa-lg"></i></span>
<span class="theme-switch nav-link" data-mode="auto"><i class="fa-solid fa-circle-half-stroke fa-lg"></i></span>
</button>
`);
</script></div>
<div class="navbar-item"><ul class="navbar-icon-links navbar-nav"
aria-label="Icon Links">
<li class="nav-item">
<a href="https://github.com/apache/arrow" title="GitHub" class="nav-link" rel="noopener" target="_blank" data-bs-toggle="tooltip" data-bs-placement="bottom"><span><i class="fa-brands fa-square-github fa-lg" aria-hidden="true"></i></span>
<span class="sr-only">GitHub</span></a>
</li>
<li class="nav-item">
<a href="https://twitter.com/ApacheArrow" title="X" class="nav-link" rel="noopener" target="_blank" data-bs-toggle="tooltip" data-bs-placement="bottom"><span><i class="fa-brands fa-square-x-twitter fa-lg" aria-hidden="true"></i></span>
<span class="sr-only">X</span></a>
</li>
</ul></div>
</div>
</div>
<div class="sidebar-primary-items__start sidebar-primary__section">
<div class="sidebar-primary-item">
<nav class="bd-docs-nav bd-links"
aria-label="Section Navigation">
<p class="bd-links__title" role="heading" aria-level="1">Section Navigation</p>
<div class="bd-toc-item navbar-nav"><ul class="current nav bd-sidenav">
<li class="toctree-l1 has-children"><a class="reference internal" href="../getting_started.html">Getting Started</a><input class="toctree-checkbox" id="toctree-checkbox-1" name="toctree-checkbox-1" type="checkbox"/><label class="toctree-toggle" for="toctree-checkbox-1"><i class="fa-solid fa-chevron-down"></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="../build_system.html">Using Arrow C++ in your own project</a></li>
<li class="toctree-l2"><a class="reference internal" href="../conventions.html">Conventions</a></li>
<li class="toctree-l2"><a class="reference internal" href="../tutorials/basic_arrow.html">Basic Arrow Data Structures</a></li>
<li class="toctree-l2"><a class="reference internal" href="../tutorials/io_tutorial.html">Arrow File I/O</a></li>
<li class="toctree-l2"><a class="reference internal" href="../tutorials/compute_tutorial.html">Arrow Compute</a></li>
<li class="toctree-l2"><a class="reference internal" href="../tutorials/datasets_tutorial.html">Arrow Datasets</a></li>
</ul>
</li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../user_guide.html">User Guide</a><input class="toctree-checkbox" id="toctree-checkbox-2" name="toctree-checkbox-2" type="checkbox"/><label class="toctree-toggle" for="toctree-checkbox-2"><i class="fa-solid fa-chevron-down"></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="../overview.html">High-Level Overview</a></li>
<li class="toctree-l2"><a class="reference internal" href="../memory.html">Memory Management</a></li>
<li class="toctree-l2"><a class="reference internal" href="../arrays.html">Arrays</a></li>
<li class="toctree-l2"><a class="reference internal" href="../datatypes.html">Data Types</a></li>
<li class="toctree-l2"><a class="reference internal" href="../tables.html">Tabular Data</a></li>
<li class="toctree-l2"><a class="reference internal" href="../compute.html">Compute Functions</a></li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../gandiva.html">The Gandiva Expression Compiler</a><input class="toctree-checkbox" id="toctree-checkbox-3" name="toctree-checkbox-3" type="checkbox"/><label class="toctree-toggle" for="toctree-checkbox-3"><i class="fa-solid fa-chevron-down"></i></label><ul>
<li class="toctree-l3"><a class="reference internal" href="../gandiva/expr_projector_filter.html">Gandiva Expression, Projector, and Filter</a></li>
<li class="toctree-l3"><a class="reference internal" href="../gandiva/external_func.html">Gandiva External Functions Development Guide</a></li>
</ul>
</li>
<li class="toctree-l2 has-children"><a class="reference internal" href="../streaming_execution.html">Acero: A C++ streaming execution engine</a><input class="toctree-checkbox" id="toctree-checkbox-4" name="toctree-checkbox-4" type="checkbox"/><label class="toctree-toggle" for="toctree-checkbox-4"><i class="fa-solid fa-chevron-down"></i></label><ul>
<li class="toctree-l3"><a class="reference internal" href="../acero/overview.html">Acero Overview</a></li>
<li class="toctree-l3"><a class="reference internal" href="../acero/user_guide.html">Acero User’s Guide</a></li>
<li class="toctree-l3"><a class="reference internal" href="../acero/substrait.html">Using Acero with Substrait</a></li>
<li class="toctree-l3"><a class="reference internal" href="../acero/developer_guide.html">Developer’s Guide</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../io.html">Input / output and filesystems</a></li>
<li class="toctree-l2"><a class="reference internal" href="../ipc.html">Reading and writing the Arrow IPC format</a></li>
<li class="toctree-l2"><a class="reference internal" href="../orc.html">Reading and Writing ORC files</a></li>
<li class="toctree-l2"><a class="reference internal" href="../parquet.html">Reading and writing Parquet files</a></li>
<li class="toctree-l2"><a class="reference internal" href="../csv.html">Reading and Writing CSV files</a></li>
<li class="toctree-l2"><a class="reference internal" href="../json.html">Reading JSON files</a></li>
<li class="toctree-l2"><a class="reference internal" href="../dataset.html">Tabular Datasets</a></li>
<li class="toctree-l2"><a class="reference internal" href="../flight.html">Arrow Flight RPC</a></li>
<li class="toctree-l2"><a class="reference internal" href="../gdb.html">Debugging code using Arrow</a></li>
<li class="toctree-l2"><a class="reference internal" href="../threading.html">Thread Management</a></li>
<li class="toctree-l2"><a class="reference internal" href="../opentelemetry.html">OpenTelemetry</a></li>
<li class="toctree-l2"><a class="reference internal" href="../env_vars.html">Environment Variables</a></li>
</ul>
</li>
<li class="toctree-l1 has-children"><a class="reference internal" href="../examples/index.html">Examples</a><input class="toctree-checkbox" id="toctree-checkbox-5" name="toctree-checkbox-5" type="checkbox"/><label class="toctree-toggle" for="toctree-checkbox-5"><i class="fa-solid fa-chevron-down"></i></label><ul>
<li class="toctree-l2"><a class="reference internal" href="../examples/cmake_minimal_build.html">Minimal build using CMake</a></li>
<li class="toctree-l2"><a class="reference internal" href="../examples/compute_and_write_example.html">Compute and Write CSV Example</a></li>
<li class="toctree-l2"><a class="reference internal" href="../examples/dataset_documentation_example.html">Arrow Datasets example</a></li>
<li class="toctree-l2"><a class="reference internal" href="../examples/dataset_skyhook_scan_example.html">Arrow Skyhook example</a></li>
<li class="toctree-l2"><a class="reference internal" href="../examples/row_columnar_conversion.html">Row to columnar conversion</a></li>
<li class="toctree-l2"><a class="reference internal" href="../examples/tuple_range_conversion.html">std::tuple-like ranges to Arrow</a></li>
<li class="toctree-l2"><a class="reference internal" href="../examples/converting_recordbatch_to_tensor.html">Converting RecordBatch to Tensor</a></li>
</ul>
</li>
<li class="toctree-l1 current active has-children"><a class="reference internal" href="../api.html">API Reference</a><input checked="" class="toctree-checkbox" id="toctree-checkbox-6" name="toctree-checkbox-6" type="checkbox"/><label class="toctree-toggle" for="toctree-checkbox-6"><i class="fa-solid fa-chevron-down"></i></label><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="support.html">Programming Support</a></li>
<li class="toctree-l2"><a class="reference internal" href="memory.html">Memory (management)</a></li>
<li class="toctree-l2"><a class="reference internal" href="thread.html">Thread (management)</a></li>
<li class="toctree-l2"><a class="reference internal" href="datatype.html">Data Types</a></li>
<li class="toctree-l2"><a class="reference internal" href="array.html">Arrays</a></li>
<li class="toctree-l2"><a class="reference internal" href="scalar.html">Scalars</a></li>
<li class="toctree-l2"><a class="reference internal" href="builder.html">Array Builders</a></li>
<li class="toctree-l2"><a class="reference internal" href="table.html">Two-dimensional Datasets</a></li>
<li class="toctree-l2"><a class="reference internal" href="c_abi.html">C Interfaces</a></li>
<li class="toctree-l2"><a class="reference internal" href="compute.html">Compute Functions</a></li>
<li class="toctree-l2"><a class="reference internal" href="acero.html">Streaming Execution (Acero)</a></li>
<li class="toctree-l2"><a class="reference internal" href="gandiva.html">Gandiva Expression Compiler</a></li>
<li class="toctree-l2"><a class="reference internal" href="tensor.html">Tensors</a></li>
<li class="toctree-l2"><a class="reference internal" href="utilities.html">Utilities</a></li>
<li class="toctree-l2"><a class="reference internal" href="async.html">Asynchronous programming</a></li>
<li class="toctree-l2"><a class="reference internal" href="io.html">Input / output</a></li>
<li class="toctree-l2"><a class="reference internal" href="ipc.html">Arrow IPC</a></li>
<li class="toctree-l2"><a class="reference internal" href="formats.html">File Formats</a></li>
<li class="toctree-l2"><a class="reference internal" href="cuda.html">CUDA support</a></li>
<li class="toctree-l2"><a class="reference internal" href="flight.html">Arrow Flight RPC</a></li>
<li class="toctree-l2"><a class="reference internal" href="flightsql.html">Arrow Flight SQL</a></li>
<li class="toctree-l2 current active"><a class="current reference internal" href="#">Filesystems</a></li>
<li class="toctree-l2"><a class="reference internal" href="dataset.html">Dataset</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference external" href="https://arrow.apache.org/cookbook/cpp/">C++ cookbook</a></li>
</ul>
</div>
</nav></div>
</div>
<div class="sidebar-primary-items__end sidebar-primary__section">
</div>
<div id="rtd-footer-container"></div>
</div>
<main id="main-content" class="bd-main">
<div class="bd-content">
<div class="bd-article-container">
<div class="bd-header-article">
<div class="header-article-items header-article__inner">
<div class="header-article-items__start">
<div class="header-article-item">
<nav aria-label="Breadcrumb">
<ul class="bd-breadcrumbs">
<li class="breadcrumb-item breadcrumb-home">
<a href="../../index.html" class="nav-link" aria-label="Home">
<i class="fa-solid fa-home"></i>
</a>
</li>
<li class="breadcrumb-item"><a href="../index.html" class="nav-link">C++ Implementation</a></li>
<li class="breadcrumb-item"><a href="../api.html" class="nav-link">API Reference</a></li>
<li class="breadcrumb-item active" aria-current="page">Filesystems</li>
</ul>
</nav>
</div>
</div>
</div>
</div>
<div id="searchbox"></div>
<article class="bd-article">
<section id="filesystems">
<h1>Filesystems<a class="headerlink" href="#filesystems" title="Permalink to this heading">#</a></h1>
<section id="interface">
<span id="cpp-api-filesystems"></span><h2>Interface<a class="headerlink" href="#interface" title="Permalink to this heading">#</a></h2>
<dl class="cpp enum-class">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs8FileTypeE">
<span id="_CPPv3N5arrow2fs8FileTypeE"></span><span id="_CPPv2N5arrow2fs8FileTypeE"></span><span class="target" id="namespacearrow_1_1fs_1ae7f70d357901a07a605fcdd5e2bfc98b"></span><span class="k"><span class="pre">enum</span></span><span class="w"> </span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-prename descclassname"><span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">fs</span></span><span class="p"><span class="pre">::</span></span></span><span class="sig-name descname"><span class="n"><span class="pre">FileType</span></span></span><span class="w"> </span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="n"><span class="pre">int8_t</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs8FileTypeE" title="Permalink to this definition">#</a><br /></dt>
<dd><p><a class="reference internal" href="#classarrow_1_1fs_1_1_file_system"><span class="std std-ref">FileSystem</span></a> entry type. </p>
<p><em>Values:</em></p>
<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs8FileType8NotFoundE">
<span id="_CPPv3N5arrow2fs8FileType8NotFoundE"></span><span id="_CPPv2N5arrow2fs8FileType8NotFoundE"></span><span class="target" id="namespacearrow_1_1fs_1ae7f70d357901a07a605fcdd5e2bfc98ba38c300f4fc9ce8a77aad4a30de05cad8"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NotFound</span></span></span><a class="headerlink" href="#_CPPv4N5arrow2fs8FileType8NotFoundE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Entry is not found. </p>
</dd></dl>
<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs8FileType7UnknownE">
<span id="_CPPv3N5arrow2fs8FileType7UnknownE"></span><span id="_CPPv2N5arrow2fs8FileType7UnknownE"></span><span class="target" id="namespacearrow_1_1fs_1ae7f70d357901a07a605fcdd5e2bfc98ba88183b946cc5f0e8c96b2e66e1c74a7e"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Unknown</span></span></span><a class="headerlink" href="#_CPPv4N5arrow2fs8FileType7UnknownE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Entry exists but its type is unknown. </p>
<p>This can designate a special file such as a Unix socket or character device, or Windows NUL / CON / … </p>
</dd></dl>
<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs8FileType4FileE">
<span id="_CPPv3N5arrow2fs8FileType4FileE"></span><span id="_CPPv2N5arrow2fs8FileType4FileE"></span><span class="target" id="namespacearrow_1_1fs_1ae7f70d357901a07a605fcdd5e2bfc98ba0b27918290ff5323bea1e3b78a9cf04e"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">File</span></span></span><a class="headerlink" href="#_CPPv4N5arrow2fs8FileType4FileE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Entry is a regular file. </p>
</dd></dl>
<dl class="cpp enumerator">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs8FileType9DirectoryE">
<span id="_CPPv3N5arrow2fs8FileType9DirectoryE"></span><span id="_CPPv2N5arrow2fs8FileType9DirectoryE"></span><span class="target" id="namespacearrow_1_1fs_1ae7f70d357901a07a605fcdd5e2bfc98bae73cda510e8bb947f7e61089e5581494"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Directory</span></span></span><a class="headerlink" href="#_CPPv4N5arrow2fs8FileType9DirectoryE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Entry is a directory. </p>
</dd></dl>
</dd></dl>
<dl class="cpp struct">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs8FileInfoE">
<span id="_CPPv3N5arrow2fs8FileInfoE"></span><span id="_CPPv2N5arrow2fs8FileInfoE"></span><span id="arrow::fs::FileInfo"></span><span class="target" id="structarrow_1_1fs_1_1_file_info"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">FileInfo</span></span></span><span class="w"> </span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="k"><span class="pre">public</span></span><span class="w"> </span><span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">util</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">EqualityComparable</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow2fs8FileInfoE" title="arrow::fs::FileInfo"><span class="n"><span class="pre">FileInfo</span></span></a><span class="p"><span class="pre">&gt;</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs8FileInfoE" title="Permalink to this definition">#</a><br /></dt>
<dd><p><a class="reference internal" href="#classarrow_1_1fs_1_1_file_system"><span class="std std-ref">FileSystem</span></a> entry info. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-functions">Public Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow2fs8FileInfo4typeEv">
<span id="_CPPv3NK5arrow2fs8FileInfo4typeEv"></span><span id="_CPPv2NK5arrow2fs8FileInfo4typeEv"></span><span id="arrow::fs::FileInfo::typeC"></span><span class="target" id="structarrow_1_1fs_1_1_file_info_1a5a5713d7cc8113a9dd0c2ea36393878d"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow2fs8FileTypeE" title="arrow::fs::FileType"><span class="n"><span class="pre">FileType</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">type</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><a class="headerlink" href="#_CPPv4NK5arrow2fs8FileInfo4typeEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>The file type. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow2fs8FileInfo4pathEv">
<span id="_CPPv3NK5arrow2fs8FileInfo4pathEv"></span><span id="_CPPv2NK5arrow2fs8FileInfo4pathEv"></span><span id="arrow::fs::FileInfo::pathC"></span><span class="target" id="structarrow_1_1fs_1_1_file_info_1a8d8afac04486180d00a165bdd4357c63"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="sig-name descname"><span class="n"><span class="pre">path</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><a class="headerlink" href="#_CPPv4NK5arrow2fs8FileInfo4pathEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>The full file path in the filesystem. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow2fs8FileInfo9base_nameEv">
<span id="_CPPv3NK5arrow2fs8FileInfo9base_nameEv"></span><span id="_CPPv2NK5arrow2fs8FileInfo9base_nameEv"></span><span id="arrow::fs::FileInfo::base_nameC"></span><span class="target" id="structarrow_1_1fs_1_1_file_info_1a60b7d1f0cb774b9bee7097539e5bbc15"></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">base_name</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><a class="headerlink" href="#_CPPv4NK5arrow2fs8FileInfo9base_nameEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>The file base name (component after the last directory separator) </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow2fs8FileInfo4sizeEv">
<span id="_CPPv3NK5arrow2fs8FileInfo4sizeEv"></span><span id="_CPPv2NK5arrow2fs8FileInfo4sizeEv"></span><span id="arrow::fs::FileInfo::sizeC"></span><span class="target" id="structarrow_1_1fs_1_1_file_info_1a331d4198caafc5657a4b12b6eafb407e"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">size</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><a class="headerlink" href="#_CPPv4NK5arrow2fs8FileInfo4sizeEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>The size in bytes, if available. </p>
<p>Only regular files are guaranteed to have a size. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow2fs8FileInfo9extensionEv">
<span id="_CPPv3NK5arrow2fs8FileInfo9extensionEv"></span><span id="_CPPv2NK5arrow2fs8FileInfo9extensionEv"></span><span id="arrow::fs::FileInfo::extensionC"></span><span class="target" id="structarrow_1_1fs_1_1_file_info_1ab832cd3ab31da2a6a80754388d1113d6"></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">extension</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><a class="headerlink" href="#_CPPv4NK5arrow2fs8FileInfo9extensionEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>The file extension (excluding the dot) </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow2fs8FileInfo5mtimeEv">
<span id="_CPPv3NK5arrow2fs8FileInfo5mtimeEv"></span><span id="_CPPv2NK5arrow2fs8FileInfo5mtimeEv"></span><span id="arrow::fs::FileInfo::mtimeC"></span><span class="target" id="structarrow_1_1fs_1_1_file_info_1ac20f62017b58598d50452891d9d7d85f"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="n"><span class="pre">TimePoint</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">mtime</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><a class="headerlink" href="#_CPPv4NK5arrow2fs8FileInfo5mtimeEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>The time of last modification, if available. </p>
</dd></dl>
</div>
<dl class="cpp struct">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs8FileInfo6ByPathE">
<span id="_CPPv3N5arrow2fs8FileInfo6ByPathE"></span><span id="_CPPv2N5arrow2fs8FileInfo6ByPathE"></span><span id="arrow::fs::FileInfo::ByPath"></span><span class="target" id="structarrow_1_1fs_1_1_file_info_1_1_by_path"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ByPath</span></span></span><a class="headerlink" href="#_CPPv4N5arrow2fs8FileInfo6ByPathE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Function object implementing less-than comparison and hashing by path, to support sorting infos, using them as keys, and other interactions with the STL. </p>
</dd></dl>
</dd></dl>
<dl class="cpp struct">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs12FileSelectorE">
<span id="_CPPv3N5arrow2fs12FileSelectorE"></span><span id="_CPPv2N5arrow2fs12FileSelectorE"></span><span id="arrow::fs::FileSelector"></span><span class="target" id="structarrow_1_1fs_1_1_file_selector"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">FileSelector</span></span></span><a class="headerlink" href="#_CPPv4N5arrow2fs12FileSelectorE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>File selector for filesystem APIs. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs12FileSelector8base_dirE">
<span id="_CPPv3N5arrow2fs12FileSelector8base_dirE"></span><span id="_CPPv2N5arrow2fs12FileSelector8base_dirE"></span><span id="arrow::fs::FileSelector::base_dir__ss"></span><span class="target" id="structarrow_1_1fs_1_1_file_selector_1a5736330a72fa912314aba0ec4f0e4105"></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">base_dir</span></span></span><a class="headerlink" href="#_CPPv4N5arrow2fs12FileSelector8base_dirE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>The directory in which to select files. </p>
<p>If the path exists but doesn’t point to a directory, this should be an error. </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs12FileSelector15allow_not_foundE">
<span id="_CPPv3N5arrow2fs12FileSelector15allow_not_foundE"></span><span id="_CPPv2N5arrow2fs12FileSelector15allow_not_foundE"></span><span id="arrow::fs::FileSelector::allow_not_found__b"></span><span class="target" id="structarrow_1_1fs_1_1_file_selector_1aead1e24f5aa8bb7a3e893436cde83ea7"></span><span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">allow_not_found</span></span></span><a class="headerlink" href="#_CPPv4N5arrow2fs12FileSelector15allow_not_foundE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>The behavior if <code class="docutils literal notranslate"><span class="pre">base_dir</span></code> isn’t found in the filesystem. </p>
<p>If false, an error is returned. If true, an empty selection is returned. </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs12FileSelector9recursiveE">
<span id="_CPPv3N5arrow2fs12FileSelector9recursiveE"></span><span id="_CPPv2N5arrow2fs12FileSelector9recursiveE"></span><span id="arrow::fs::FileSelector::recursive__b"></span><span class="target" id="structarrow_1_1fs_1_1_file_selector_1ac5642a0e14beebb274c80b24dda2168a"></span><span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">recursive</span></span></span><a class="headerlink" href="#_CPPv4N5arrow2fs12FileSelector9recursiveE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Whether to recurse into subdirectories. </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs12FileSelector13max_recursionE">
<span id="_CPPv3N5arrow2fs12FileSelector13max_recursionE"></span><span id="_CPPv2N5arrow2fs12FileSelector13max_recursionE"></span><span id="arrow::fs::FileSelector::max_recursion__int32_t"></span><span class="target" id="structarrow_1_1fs_1_1_file_selector_1a2b7d0aff4fbc17195aa746c9df425c17"></span><span class="n"><span class="pre">int32_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">max_recursion</span></span></span><a class="headerlink" href="#_CPPv4N5arrow2fs12FileSelector13max_recursionE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>The maximum number of subdirectories to recurse into. </p>
</dd></dl>
</div>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs10FileSystemE">
<span id="_CPPv3N5arrow2fs10FileSystemE"></span><span id="_CPPv2N5arrow2fs10FileSystemE"></span><span id="arrow::fs::FileSystem"></span><span class="target" id="classarrow_1_1fs_1_1_file_system"></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">FileSystem</span></span></span><a class="headerlink" href="#_CPPv4N5arrow2fs10FileSystemE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Abstract file system API. </p>
<p>Subclassed by arrow::fs::AzureFileSystem, <a class="reference internal" href="#classarrow_1_1fs_1_1_gcs_file_system"><span class="std std-ref">arrow::fs::GcsFileSystem</span></a>, <a class="reference internal" href="#classarrow_1_1fs_1_1_hadoop_file_system"><span class="std std-ref">arrow::fs::HadoopFileSystem</span></a>, <a class="reference internal" href="#classarrow_1_1fs_1_1_local_file_system"><span class="std std-ref">arrow::fs::LocalFileSystem</span></a>, <a class="reference internal" href="#classarrow_1_1fs_1_1_s3_file_system"><span class="std std-ref">arrow::fs::S3FileSystem</span></a>, arrow::fs::SlowFileSystem, <a class="reference internal" href="#classarrow_1_1fs_1_1_sub_tree_file_system"><span class="std std-ref">arrow::fs::SubTreeFileSystem</span></a>, arrow::fs::internal::MockFileSystem</p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-functions">Public Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow2fs10FileSystem10io_contextEv">
<span id="_CPPv3NK5arrow2fs10FileSystem10io_contextEv"></span><span id="_CPPv2NK5arrow2fs10FileSystem10io_contextEv"></span><span id="arrow::fs::FileSystem::io_contextC"></span><span class="target" id="classarrow_1_1fs_1_1_file_system_1ad0bab32c5ccd31b32fcb5a071a014b8a"></span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">IOContext</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="sig-name descname"><span class="n"><span class="pre">io_context</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><a class="headerlink" href="#_CPPv4NK5arrow2fs10FileSystem10io_contextEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>EXPERIMENTAL: The IOContext associated with this filesystem. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs10FileSystem13NormalizePathENSt6stringE">
<span id="_CPPv3N5arrow2fs10FileSystem13NormalizePathENSt6stringE"></span><span id="_CPPv2N5arrow2fs10FileSystem13NormalizePathENSt6stringE"></span><span id="arrow::fs::FileSystem::NormalizePath__ss"></span><span class="target" id="classarrow_1_1fs_1_1_file_system_1a73d5af5c51cc4cf569fabcea48781721"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NormalizePath</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">path</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow2fs10FileSystem13NormalizePathENSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Normalize path for the given filesystem. </p>
<p>The default implementation of this method is a no-op, but subclasses may allow normalizing irregular path forms (such as Windows local paths). </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow2fs10FileSystem11PathFromUriERKNSt6stringE">
<span id="_CPPv3NK5arrow2fs10FileSystem11PathFromUriERKNSt6stringE"></span><span id="_CPPv2NK5arrow2fs10FileSystem11PathFromUriERKNSt6stringE"></span><span id="arrow::fs::FileSystem::PathFromUri__ssCRC"></span><span class="target" id="classarrow_1_1fs_1_1_file_system_1a46ba633c4801122386d04151f8c215fa"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">PathFromUri</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">uri_string</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><a class="headerlink" href="#_CPPv4NK5arrow2fs10FileSystem11PathFromUriERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Ensure a URI (or path) is compatible with the given filesystem and return the path. </p>
<p>
This method will check to ensure the given filesystem is compatible with the URI. This can be useful when the user provides both a URI and a filesystem or when a user provides multiple URIs that should be compatible with the same filesystem.</p>
<p>uri_string can be an absolute path instead of a URI. In that case it will ensure the filesystem (if supplied) is the local filesystem (or some custom filesystem that is capable of reading local paths) and will normalize the path’s file separators.</p>
<p>Note, this method only checks to ensure the URI scheme is valid. It will not detect inconsistencies like a mismatching region or endpoint override.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>uri_string</strong> – A URI representing a resource in the given filesystem.</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>The path inside the filesystem that is indicated by the URI. </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow2fs10FileSystem7MakeUriENSt6stringE">
<span id="_CPPv3NK5arrow2fs10FileSystem7MakeUriENSt6stringE"></span><span id="_CPPv2NK5arrow2fs10FileSystem7MakeUriENSt6stringE"></span><span id="arrow::fs::FileSystem::MakeUri__ssC"></span><span class="target" id="classarrow_1_1fs_1_1_file_system_1a93dfb819ae985296c476884b54067e09"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">MakeUri</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">path</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><a class="headerlink" href="#_CPPv4NK5arrow2fs10FileSystem7MakeUriENSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Make a URI from which FileSystemFromUri produces an equivalent filesystem. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>path</strong> – The path component to use in the resulting URI </p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>A URI string, or an error if an equivalent URI cannot be produced </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs10FileSystem11GetFileInfoERKNSt6stringE">
<span id="_CPPv3N5arrow2fs10FileSystem11GetFileInfoERKNSt6stringE"></span><span id="_CPPv2N5arrow2fs10FileSystem11GetFileInfoERKNSt6stringE"></span><span id="arrow::fs::FileSystem::GetFileInfo__ssCR"></span><span class="target" id="classarrow_1_1fs_1_1_file_system_1ae883cb9d3a7b0523ebb346e5851f6aa9"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow2fs8FileInfoE" title="arrow::fs::FileInfo"><span class="n"><span class="pre">FileInfo</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">GetFileInfo</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="m"><span class="pre">0</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs10FileSystem11GetFileInfoERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Get info for the given target. </p>
<p>Any symlink is automatically dereferenced, recursively. A nonexistent or unreachable file returns an Ok status and has a FileType of value NotFound. An error status indicates a truly exceptional condition (low-level I/O error, etc.). </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs10FileSystem11GetFileInfoERKNSt6vectorINSt6stringEEE">
<span id="_CPPv3N5arrow2fs10FileSystem11GetFileInfoERKNSt6vectorINSt6stringEEE"></span><span id="_CPPv2N5arrow2fs10FileSystem11GetFileInfoERKNSt6vectorINSt6stringEEE"></span><span id="arrow::fs::FileSystem::GetFileInfo__std::vector:ss:CR"></span><span class="target" id="classarrow_1_1fs_1_1_file_system_1a0fba138f4907fbfd2a10898c1bc3596a"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">FileInfoVector</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">GetFileInfo</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">vector</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">paths</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow2fs10FileSystem11GetFileInfoERKNSt6vectorINSt6stringEEE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Same, for many targets at once. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs10FileSystem11GetFileInfoERK12FileSelector">
<span id="_CPPv3N5arrow2fs10FileSystem11GetFileInfoERK12FileSelector"></span><span id="_CPPv2N5arrow2fs10FileSystem11GetFileInfoERK12FileSelector"></span><span id="arrow::fs::FileSystem::GetFileInfo__FileSelectorCR"></span><span class="target" id="classarrow_1_1fs_1_1_file_system_1a0e8550a04aa4de5c18eb1ce537360d4c"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">FileInfoVector</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">GetFileInfo</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow2fs12FileSelectorE" title="arrow::fs::FileSelector"><span class="n"><span class="pre">FileSelector</span></span></a><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">select</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="m"><span class="pre">0</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs10FileSystem11GetFileInfoERK12FileSelector" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Same, according to a selector. </p>
<p>The selector’s base directory will not be part of the results, even if it exists. If it doesn’t exist, see <code class="docutils literal notranslate"><a class="reference internal" href="#structarrow_1_1fs_1_1_file_selector_1aead1e24f5aa8bb7a3e893436cde83ea7"><span class="std std-ref"><span class="pre">FileSelector::allow_not_found</span></span></a></code>. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs10FileSystem16GetFileInfoAsyncERKNSt6vectorINSt6stringEEE">
<span id="_CPPv3N5arrow2fs10FileSystem16GetFileInfoAsyncERKNSt6vectorINSt6stringEEE"></span><span id="_CPPv2N5arrow2fs10FileSystem16GetFileInfoAsyncERKNSt6vectorINSt6stringEEE"></span><span id="arrow::fs::FileSystem::GetFileInfoAsync__std::vector:ss:CR"></span><span class="target" id="classarrow_1_1fs_1_1_file_system_1a0b8726c9f69c671232a8afdf36fa6012"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="async.html#_CPPv4I0EN5arrow6FutureE" title="arrow::Future"><span class="n"><span class="pre">Future</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">FileInfoVector</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">GetFileInfoAsync</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">vector</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">paths</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow2fs10FileSystem16GetFileInfoAsyncERKNSt6vectorINSt6stringEEE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Async version of GetFileInfo. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs10FileSystem20GetFileInfoGeneratorERK12FileSelector">
<span id="_CPPv3N5arrow2fs10FileSystem20GetFileInfoGeneratorERK12FileSelector"></span><span id="_CPPv2N5arrow2fs10FileSystem20GetFileInfoGeneratorERK12FileSelector"></span><span id="arrow::fs::FileSystem::GetFileInfoGenerator__FileSelectorCR"></span><span class="target" id="classarrow_1_1fs_1_1_file_system_1a42b825275e4626107cb86e292253e637"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="n"><span class="pre">FileInfoGenerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">GetFileInfoGenerator</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow2fs12FileSelectorE" title="arrow::fs::FileSelector"><span class="n"><span class="pre">FileSelector</span></span></a><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">select</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow2fs10FileSystem20GetFileInfoGeneratorERK12FileSelector" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Streaming async version of GetFileInfo. </p>
<p>The returned generator is not async-reentrant, i.e. you need to wait for the returned future to complete before calling the generator again. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs10FileSystem9CreateDirERKNSt6stringEb">
<span id="_CPPv3N5arrow2fs10FileSystem9CreateDirERKNSt6stringEb"></span><span id="_CPPv2N5arrow2fs10FileSystem9CreateDirERKNSt6stringEb"></span><span id="arrow::fs::FileSystem::CreateDir__ssCR.b"></span><span class="target" id="classarrow_1_1fs_1_1_file_system_1a9f06374113dc9b4517673f6068e9b289"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">CreateDir</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span>, <span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">recursive</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="m"><span class="pre">0</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs10FileSystem9CreateDirERKNSt6stringEb" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Create a directory and subdirectories. </p>
<p>This function succeeds if the directory already exists. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs10FileSystem9DeleteDirERKNSt6stringE">
<span id="_CPPv3N5arrow2fs10FileSystem9DeleteDirERKNSt6stringE"></span><span id="_CPPv2N5arrow2fs10FileSystem9DeleteDirERKNSt6stringE"></span><span id="arrow::fs::FileSystem::DeleteDir__ssCR"></span><span class="target" id="classarrow_1_1fs_1_1_file_system_1aa6d2d675596ee51935cc4baa9d30ea72"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">DeleteDir</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="m"><span class="pre">0</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs10FileSystem9DeleteDirERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Delete a directory and its contents, recursively. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs10FileSystem17DeleteDirContentsERKNSt6stringEb">
<span id="_CPPv3N5arrow2fs10FileSystem17DeleteDirContentsERKNSt6stringEb"></span><span id="_CPPv2N5arrow2fs10FileSystem17DeleteDirContentsERKNSt6stringEb"></span><span id="arrow::fs::FileSystem::DeleteDirContents__ssCR.b"></span><span class="target" id="classarrow_1_1fs_1_1_file_system_1abc7f4a15cd4a68b80e6eec0fb8ec031d"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">DeleteDirContents</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span>, <span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">missing_dir_ok</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="m"><span class="pre">0</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs10FileSystem17DeleteDirContentsERKNSt6stringEb" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Delete a directory’s contents, recursively. </p>
<p>Like DeleteDir, but doesn’t delete the directory itself. Passing an empty path (”” or “/”) is disallowed, see DeleteRootDirContents. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs10FileSystem22DeleteDirContentsAsyncERKNSt6stringEb">
<span id="_CPPv3N5arrow2fs10FileSystem22DeleteDirContentsAsyncERKNSt6stringEb"></span><span id="_CPPv2N5arrow2fs10FileSystem22DeleteDirContentsAsyncERKNSt6stringEb"></span><span id="arrow::fs::FileSystem::DeleteDirContentsAsync__ssCR.b"></span><span class="target" id="classarrow_1_1fs_1_1_file_system_1af8590c5c794e05efca6e88ac9e1afde2"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="async.html#_CPPv4I0EN5arrow6FutureE" title="arrow::Future"><span class="n"><span class="pre">Future</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">DeleteDirContentsAsync</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span>, <span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">missing_dir_ok</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow2fs10FileSystem22DeleteDirContentsAsyncERKNSt6stringEb" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Async version of DeleteDirContents. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs10FileSystem22DeleteDirContentsAsyncERKNSt6stringE">
<span id="_CPPv3N5arrow2fs10FileSystem22DeleteDirContentsAsyncERKNSt6stringE"></span><span id="_CPPv2N5arrow2fs10FileSystem22DeleteDirContentsAsyncERKNSt6stringE"></span><span id="arrow::fs::FileSystem::DeleteDirContentsAsync__ssCR"></span><span class="target" id="classarrow_1_1fs_1_1_file_system_1ae5f5ff86055b64550e6f12f56435cca8"></span><a class="reference internal" href="async.html#_CPPv4I0EN5arrow6FutureE" title="arrow::Future"><span class="n"><span class="pre">Future</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">DeleteDirContentsAsync</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow2fs10FileSystem22DeleteDirContentsAsyncERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Async version of DeleteDirContents. </p>
<p>This overload allows missing directories. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs10FileSystem21DeleteRootDirContentsEv">
<span id="_CPPv3N5arrow2fs10FileSystem21DeleteRootDirContentsEv"></span><span id="_CPPv2N5arrow2fs10FileSystem21DeleteRootDirContentsEv"></span><span id="arrow::fs::FileSystem::DeleteRootDirContents"></span><span class="target" id="classarrow_1_1fs_1_1_file_system_1a0f7f9540b8c9a0190d732a9064e9b43f"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">DeleteRootDirContents</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="m"><span class="pre">0</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs10FileSystem21DeleteRootDirContentsEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>EXPERIMENTAL: Delete the root directory’s contents, recursively. </p>
<p>Implementations may decide to raise an error if this operation is too dangerous. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs10FileSystem10DeleteFileERKNSt6stringE">
<span id="_CPPv3N5arrow2fs10FileSystem10DeleteFileERKNSt6stringE"></span><span id="_CPPv2N5arrow2fs10FileSystem10DeleteFileERKNSt6stringE"></span><span id="arrow::fs::FileSystem::DeleteFile__ssCR"></span><span class="target" id="classarrow_1_1fs_1_1_file_system_1ac9698e825f1abbe2497850c7d25efa1c"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">DeleteFile</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="m"><span class="pre">0</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs10FileSystem10DeleteFileERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Delete a file. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs10FileSystem11DeleteFilesERKNSt6vectorINSt6stringEEE">
<span id="_CPPv3N5arrow2fs10FileSystem11DeleteFilesERKNSt6vectorINSt6stringEEE"></span><span id="_CPPv2N5arrow2fs10FileSystem11DeleteFilesERKNSt6vectorINSt6stringEEE"></span><span id="arrow::fs::FileSystem::DeleteFiles__std::vector:ss:CR"></span><span class="target" id="classarrow_1_1fs_1_1_file_system_1aabbcfc55e53a8bcf3d88ece0b64fb400"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">DeleteFiles</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">vector</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">paths</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow2fs10FileSystem11DeleteFilesERKNSt6vectorINSt6stringEEE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Delete many files. </p>
<p>The default implementation issues individual delete operations in sequence. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs10FileSystem4MoveERKNSt6stringERKNSt6stringE">
<span id="_CPPv3N5arrow2fs10FileSystem4MoveERKNSt6stringERKNSt6stringE"></span><span id="_CPPv2N5arrow2fs10FileSystem4MoveERKNSt6stringERKNSt6stringE"></span><span id="arrow::fs::FileSystem::Move__ssCR.ssCR"></span><span class="target" id="classarrow_1_1fs_1_1_file_system_1a3ab3b162b3ea640076bbd46702735419"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Move</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">src</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">dest</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="m"><span class="pre">0</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs10FileSystem4MoveERKNSt6stringERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Move / rename a file or directory. </p>
<p>If the destination exists:<ul class="simple">
<li><p>if it is a non-empty directory, an error is returned</p></li>
<li><p>otherwise, if it has the same type as the source, it is replaced</p></li>
<li><p>otherwise, behavior is unspecified (implementation-dependent). </p></li>
</ul>
</p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs10FileSystem8CopyFileERKNSt6stringERKNSt6stringE">
<span id="_CPPv3N5arrow2fs10FileSystem8CopyFileERKNSt6stringERKNSt6stringE"></span><span id="_CPPv2N5arrow2fs10FileSystem8CopyFileERKNSt6stringERKNSt6stringE"></span><span id="arrow::fs::FileSystem::CopyFile__ssCR.ssCR"></span><span class="target" id="classarrow_1_1fs_1_1_file_system_1a7222bd63bfcb1ac2a48367ce9e5c9667"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">CopyFile</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">src</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">dest</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="m"><span class="pre">0</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs10FileSystem8CopyFileERKNSt6stringERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Copy a file. </p>
<p>If the destination exists and is a directory, an error is returned. Otherwise, it is replaced. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs10FileSystem15OpenInputStreamERKNSt6stringE">
<span id="_CPPv3N5arrow2fs10FileSystem15OpenInputStreamERKNSt6stringE"></span><span id="_CPPv2N5arrow2fs10FileSystem15OpenInputStreamERKNSt6stringE"></span><span id="arrow::fs::FileSystem::OpenInputStream__ssCR"></span><span class="target" id="classarrow_1_1fs_1_1_file_system_1a4baf948a7ebca79d1b085942f32ba65f"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="io.html#_CPPv4N5arrow2io11InputStreamE" title="arrow::io::InputStream"><span class="n"><span class="pre">InputStream</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">OpenInputStream</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="m"><span class="pre">0</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs10FileSystem15OpenInputStreamERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Open an input stream for sequential reading. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs10FileSystem15OpenInputStreamERK8FileInfo">
<span id="_CPPv3N5arrow2fs10FileSystem15OpenInputStreamERK8FileInfo"></span><span id="_CPPv2N5arrow2fs10FileSystem15OpenInputStreamERK8FileInfo"></span><span id="arrow::fs::FileSystem::OpenInputStream__FileInfoCR"></span><span class="target" id="classarrow_1_1fs_1_1_file_system_1a50f6cfa8074bf711e8197d2ded3a4316"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="io.html#_CPPv4N5arrow2io11InputStreamE" title="arrow::io::InputStream"><span class="n"><span class="pre">InputStream</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">OpenInputStream</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow2fs8FileInfoE" title="arrow::fs::FileInfo"><span class="n"><span class="pre">FileInfo</span></span></a><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">info</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow2fs10FileSystem15OpenInputStreamERK8FileInfo" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Open an input stream for sequential reading. </p>
<p>This override assumes the given <a class="reference internal" href="#structarrow_1_1fs_1_1_file_info"><span class="std std-ref">FileInfo</span></a> validly represents the file’s characteristics, and may optimize access depending on them (for example avoid querying the file size or its existence). </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs10FileSystem13OpenInputFileERKNSt6stringE">
<span id="_CPPv3N5arrow2fs10FileSystem13OpenInputFileERKNSt6stringE"></span><span id="_CPPv2N5arrow2fs10FileSystem13OpenInputFileERKNSt6stringE"></span><span id="arrow::fs::FileSystem::OpenInputFile__ssCR"></span><span class="target" id="classarrow_1_1fs_1_1_file_system_1a6e401fc8e1b55d66ab5045845dc3fdae"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="io.html#_CPPv4N5arrow2io16RandomAccessFileE" title="arrow::io::RandomAccessFile"><span class="n"><span class="pre">RandomAccessFile</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">OpenInputFile</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="m"><span class="pre">0</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs10FileSystem13OpenInputFileERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Open an input file for random access reading. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs10FileSystem13OpenInputFileERK8FileInfo">
<span id="_CPPv3N5arrow2fs10FileSystem13OpenInputFileERK8FileInfo"></span><span id="_CPPv2N5arrow2fs10FileSystem13OpenInputFileERK8FileInfo"></span><span id="arrow::fs::FileSystem::OpenInputFile__FileInfoCR"></span><span class="target" id="classarrow_1_1fs_1_1_file_system_1a976782e82e56e0bea3e1ed6c9a4f414a"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="io.html#_CPPv4N5arrow2io16RandomAccessFileE" title="arrow::io::RandomAccessFile"><span class="n"><span class="pre">RandomAccessFile</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">OpenInputFile</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow2fs8FileInfoE" title="arrow::fs::FileInfo"><span class="n"><span class="pre">FileInfo</span></span></a><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">info</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow2fs10FileSystem13OpenInputFileERK8FileInfo" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Open an input file for random access reading. </p>
<p>This override assumes the given <a class="reference internal" href="#structarrow_1_1fs_1_1_file_info"><span class="std std-ref">FileInfo</span></a> validly represents the file’s characteristics, and may optimize access depending on them (for example avoid querying the file size or its existence). </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs10FileSystem20OpenInputStreamAsyncERKNSt6stringE">
<span id="_CPPv3N5arrow2fs10FileSystem20OpenInputStreamAsyncERKNSt6stringE"></span><span id="_CPPv2N5arrow2fs10FileSystem20OpenInputStreamAsyncERKNSt6stringE"></span><span id="arrow::fs::FileSystem::OpenInputStreamAsync__ssCR"></span><span class="target" id="classarrow_1_1fs_1_1_file_system_1a872d385f3e71c32e958986d2dd41b5e2"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="async.html#_CPPv4I0EN5arrow6FutureE" title="arrow::Future"><span class="n"><span class="pre">Future</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="io.html#_CPPv4N5arrow2io11InputStreamE" title="arrow::io::InputStream"><span class="n"><span class="pre">InputStream</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">OpenInputStreamAsync</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow2fs10FileSystem20OpenInputStreamAsyncERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Async version of OpenInputStream. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs10FileSystem20OpenInputStreamAsyncERK8FileInfo">
<span id="_CPPv3N5arrow2fs10FileSystem20OpenInputStreamAsyncERK8FileInfo"></span><span id="_CPPv2N5arrow2fs10FileSystem20OpenInputStreamAsyncERK8FileInfo"></span><span id="arrow::fs::FileSystem::OpenInputStreamAsync__FileInfoCR"></span><span class="target" id="classarrow_1_1fs_1_1_file_system_1a5c4696801180068fc868c89e6eb1d928"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="async.html#_CPPv4I0EN5arrow6FutureE" title="arrow::Future"><span class="n"><span class="pre">Future</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="io.html#_CPPv4N5arrow2io11InputStreamE" title="arrow::io::InputStream"><span class="n"><span class="pre">InputStream</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">OpenInputStreamAsync</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow2fs8FileInfoE" title="arrow::fs::FileInfo"><span class="n"><span class="pre">FileInfo</span></span></a><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">info</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow2fs10FileSystem20OpenInputStreamAsyncERK8FileInfo" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Async version of OpenInputStream. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs10FileSystem18OpenInputFileAsyncERKNSt6stringE">
<span id="_CPPv3N5arrow2fs10FileSystem18OpenInputFileAsyncERKNSt6stringE"></span><span id="_CPPv2N5arrow2fs10FileSystem18OpenInputFileAsyncERKNSt6stringE"></span><span id="arrow::fs::FileSystem::OpenInputFileAsync__ssCR"></span><span class="target" id="classarrow_1_1fs_1_1_file_system_1a44d7a70f237ce70bfda2511e75928640"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="async.html#_CPPv4I0EN5arrow6FutureE" title="arrow::Future"><span class="n"><span class="pre">Future</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="io.html#_CPPv4N5arrow2io16RandomAccessFileE" title="arrow::io::RandomAccessFile"><span class="n"><span class="pre">RandomAccessFile</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">OpenInputFileAsync</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow2fs10FileSystem18OpenInputFileAsyncERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Async version of OpenInputFile. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs10FileSystem18OpenInputFileAsyncERK8FileInfo">
<span id="_CPPv3N5arrow2fs10FileSystem18OpenInputFileAsyncERK8FileInfo"></span><span id="_CPPv2N5arrow2fs10FileSystem18OpenInputFileAsyncERK8FileInfo"></span><span id="arrow::fs::FileSystem::OpenInputFileAsync__FileInfoCR"></span><span class="target" id="classarrow_1_1fs_1_1_file_system_1a29bbfaa6af74a13e44e9ab0f3defa2da"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="async.html#_CPPv4I0EN5arrow6FutureE" title="arrow::Future"><span class="n"><span class="pre">Future</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="io.html#_CPPv4N5arrow2io16RandomAccessFileE" title="arrow::io::RandomAccessFile"><span class="n"><span class="pre">RandomAccessFile</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">OpenInputFileAsync</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow2fs8FileInfoE" title="arrow::fs::FileInfo"><span class="n"><span class="pre">FileInfo</span></span></a><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">info</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow2fs10FileSystem18OpenInputFileAsyncERK8FileInfo" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Async version of OpenInputFile. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs10FileSystem16OpenOutputStreamERKNSt6stringERKNSt10shared_ptrIK16KeyValueMetadataEE">
<span id="_CPPv3N5arrow2fs10FileSystem16OpenOutputStreamERKNSt6stringERKNSt10shared_ptrIK16KeyValueMetadataEE"></span><span id="_CPPv2N5arrow2fs10FileSystem16OpenOutputStreamERKNSt6stringERKNSt10shared_ptrIK16KeyValueMetadataEE"></span><span id="arrow::fs::FileSystem::OpenOutputStream__ssCR.std::shared_ptr:KeyValueMetadataC:CR"></span><span class="target" id="classarrow_1_1fs_1_1_file_system_1ac6cfc52caf5ca9773472508a6ed9813b"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="io.html#_CPPv4N5arrow2io12OutputStreamE" title="arrow::io::OutputStream"><span class="n"><span class="pre">OutputStream</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">OpenOutputStream</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="datatype.html#_CPPv4N5arrow16KeyValueMetadataE" title="arrow::KeyValueMetadata"><span class="n"><span class="pre">KeyValueMetadata</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">metadata</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="m"><span class="pre">0</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs10FileSystem16OpenOutputStreamERKNSt6stringERKNSt10shared_ptrIK16KeyValueMetadataEE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Open an output stream for sequential writing. </p>
<p>If the target already exists, existing data is truncated. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs10FileSystem16OpenAppendStreamERKNSt6stringERKNSt10shared_ptrIK16KeyValueMetadataEE">
<span id="_CPPv3N5arrow2fs10FileSystem16OpenAppendStreamERKNSt6stringERKNSt10shared_ptrIK16KeyValueMetadataEE"></span><span id="_CPPv2N5arrow2fs10FileSystem16OpenAppendStreamERKNSt6stringERKNSt10shared_ptrIK16KeyValueMetadataEE"></span><span id="arrow::fs::FileSystem::OpenAppendStream__ssCR.std::shared_ptr:KeyValueMetadataC:CR"></span><span class="target" id="classarrow_1_1fs_1_1_file_system_1add3df2e9d9d670db934a93cc196eeec7"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="io.html#_CPPv4N5arrow2io12OutputStreamE" title="arrow::io::OutputStream"><span class="n"><span class="pre">OutputStream</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">OpenAppendStream</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="datatype.html#_CPPv4N5arrow16KeyValueMetadataE" title="arrow::KeyValueMetadata"><span class="n"><span class="pre">KeyValueMetadata</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">metadata</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="m"><span class="pre">0</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs10FileSystem16OpenAppendStreamERKNSt6stringERKNSt10shared_ptrIK16KeyValueMetadataEE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Open an output stream for appending. </p>
<p>If the target doesn’t exist, a new empty file is created.</p>
<p>Note: some filesystem implementations do not support efficient appending to an existing file, in which case this method will return NotImplemented. Consider writing to multiple files (using e.g. the dataset layer) instead. </p>
</dd></dl>
</div>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs15EnsureFinalizedEv">
<span id="_CPPv3N5arrow2fs15EnsureFinalizedEv"></span><span id="_CPPv2N5arrow2fs15EnsureFinalizedEv"></span><span id="arrow::fs::EnsureFinalized"></span><span class="target" id="namespacearrow_1_1fs_1adb09ae95eedfc995409430bb6b2401ac"></span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-prename descclassname"><span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">fs</span></span><span class="p"><span class="pre">::</span></span></span><span class="sig-name descname"><span class="n"><span class="pre">EnsureFinalized</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow2fs15EnsureFinalizedEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Ensure all registered filesystem implementations are finalized. </p>
<p>Individual finalizers may wait for concurrent calls to finish so as to avoid race conditions. After this function has been called, all filesystem APIs will fail with an error.</p>
<p>The user is responsible for synchronization of calls to this function. </p>
</dd></dl>
</section>
<section id="high-level-factory-functions">
<span id="filesystem-factory-functions"></span><h2>High-level factory functions<a class="headerlink" href="#high-level-factory-functions" title="Permalink to this heading">#</a></h2>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv417FileSystemFromUriRKNSt6stringEPNSt6stringE">
<span id="_CPPv317FileSystemFromUriRKNSt6stringEPNSt6stringE"></span><span id="_CPPv217FileSystemFromUriRKNSt6stringEPNSt6stringE"></span><span id="FileSystemFromUri__ssCR.ssP"></span><span class="target" id="group__filesystem-factories_1gad7710ab97df6770825aa002930c84553"></span><span class="n"><span class="pre">Result</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">FileSystem</span></span><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">FileSystemFromUri</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">uri</span></span>, <span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">out_path</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">NULLPTR</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv417FileSystemFromUriRKNSt6stringEPNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Create a new <a class="reference internal" href="#classarrow_1_1fs_1_1_file_system"><span class="std std-ref">FileSystem</span></a> by URI. </p>
<p>Recognized schemes are “file”, “mock”, “hdfs”, “viewfs”, “s3”, “gs” and “gcs”.</p>
<p>Support for other schemes can be added using RegisterFileSystemFactory.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>uri</strong><strong>[in]</strong> a URI-based path, ex: <a class="reference external" href="file:///some/local/path">file:///some/local/path</a></p></li>
<li><p><strong>out_path</strong><strong>[out]</strong> (optional) Path inside the filesystem. </p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>out_fs <a class="reference internal" href="#classarrow_1_1fs_1_1_file_system"><span class="std std-ref">FileSystem</span></a> instance. </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv417FileSystemFromUriRKNSt6stringERKN2io9IOContextEPNSt6stringE">
<span id="_CPPv317FileSystemFromUriRKNSt6stringERKN2io9IOContextEPNSt6stringE"></span><span id="_CPPv217FileSystemFromUriRKNSt6stringERKN2io9IOContextEPNSt6stringE"></span><span id="FileSystemFromUri__ssCR.io::IOContextCR.ssP"></span><span class="target" id="group__filesystem-factories_1ga8590c1433fa076f131611f4fea6cdf42"></span><span class="n"><span class="pre">Result</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">FileSystem</span></span><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">FileSystemFromUri</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">uri</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">IOContext</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">io_context</span></span>, <span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">out_path</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">NULLPTR</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv417FileSystemFromUriRKNSt6stringERKN2io9IOContextEPNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Create a new <a class="reference internal" href="#classarrow_1_1fs_1_1_file_system"><span class="std std-ref">FileSystem</span></a> by URI with a custom IO context. </p>
<p>Recognized schemes are “file”, “mock”, “hdfs”, “viewfs”, “s3”, “gs” and “gcs”.</p>
<p>Support for other schemes can be added using RegisterFileSystemFactory.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>uri</strong><strong>[in]</strong> a URI-based path, ex: <a class="reference external" href="file:///some/local/path">file:///some/local/path</a></p></li>
<li><p><strong>io_context</strong><strong>[in]</strong> an IOContext which will be associated with the filesystem </p></li>
<li><p><strong>out_path</strong><strong>[out]</strong> (optional) Path inside the filesystem. </p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>out_fs <a class="reference internal" href="#classarrow_1_1fs_1_1_file_system"><span class="std std-ref">FileSystem</span></a> instance. </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv423FileSystemFromUriOrPathRKNSt6stringEPNSt6stringE">
<span id="_CPPv323FileSystemFromUriOrPathRKNSt6stringEPNSt6stringE"></span><span id="_CPPv223FileSystemFromUriOrPathRKNSt6stringEPNSt6stringE"></span><span id="FileSystemFromUriOrPath__ssCR.ssP"></span><span class="target" id="group__filesystem-factories_1ga8687f598b2c715fcc85f067fa94a5fab"></span><span class="n"><span class="pre">Result</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">FileSystem</span></span><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">FileSystemFromUriOrPath</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">uri</span></span>, <span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">out_path</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">NULLPTR</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv423FileSystemFromUriOrPathRKNSt6stringEPNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Create a new <a class="reference internal" href="#classarrow_1_1fs_1_1_file_system"><span class="std std-ref">FileSystem</span></a> by URI. </p>
<p>Support for other schemes can be added using RegisterFileSystemFactory.</p>
<p>Same as FileSystemFromUri, but in addition also recognize non-URIs and treat them as local filesystem paths. Only absolute local filesystem paths are allowed. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv423FileSystemFromUriOrPathRKNSt6stringERKN2io9IOContextEPNSt6stringE">
<span id="_CPPv323FileSystemFromUriOrPathRKNSt6stringERKN2io9IOContextEPNSt6stringE"></span><span id="_CPPv223FileSystemFromUriOrPathRKNSt6stringERKN2io9IOContextEPNSt6stringE"></span><span id="FileSystemFromUriOrPath__ssCR.io::IOContextCR.ssP"></span><span class="target" id="group__filesystem-factories_1gad77553c785ff7f6abf2d331c6b58990c"></span><span class="n"><span class="pre">Result</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">FileSystem</span></span><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">FileSystemFromUriOrPath</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">uri</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">IOContext</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">io_context</span></span>, <span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">out_path</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">NULLPTR</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv423FileSystemFromUriOrPathRKNSt6stringERKN2io9IOContextEPNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Create a new <a class="reference internal" href="#classarrow_1_1fs_1_1_file_system"><span class="std std-ref">FileSystem</span></a> by URI with a custom IO context. </p>
<p>Support for other schemes can be added using RegisterFileSystemFactory.</p>
<p>Same as FileSystemFromUri, but in addition also recognize non-URIs and treat them as local filesystem paths. Only absolute local filesystem paths are allowed. </p>
</dd></dl>
</section>
<section id="factory-registration-functions">
<h2>Factory registration functions<a class="headerlink" href="#factory-registration-functions" title="Permalink to this heading">#</a></h2>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv425RegisterFileSystemFactoryNSt6stringE17FileSystemFactoryNSt8functionIFvvEEE">
<span id="_CPPv325RegisterFileSystemFactoryNSt6stringE17FileSystemFactoryNSt8functionIFvvEEE"></span><span id="_CPPv225RegisterFileSystemFactoryNSt6stringE17FileSystemFactoryNSt8functionIFvvEEE"></span><span class="target" id="group__filesystem-factory-registration_1ga5defb1c5c626fc3ad992f1886a33a4f9"></span><span class="n"><span class="pre">Status</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">RegisterFileSystemFactory</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">scheme</span></span>, <span class="n"><span class="pre">FileSystemFactory</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">factory</span></span>, <span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">function</span></span><span class="p"><span class="pre">&lt;</span></span><span class="kt"><span class="pre">void</span></span><span class="p"><span class="pre">(</span></span><span class="p"><span class="pre">)</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">finalizer</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="p"><span class="pre">{</span></span><span class="p"><span class="pre">}</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv425RegisterFileSystemFactoryNSt6stringE17FileSystemFactoryNSt8functionIFvvEEE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Register a <a class="reference internal" href="#classarrow_1_1fs_1_1_file_system"><span class="std std-ref">FileSystem</span></a> factory. </p>
<p>Support for custom URI schemes can be added by registering a factory for the corresponding <a class="reference internal" href="#classarrow_1_1fs_1_1_file_system"><span class="std std-ref">FileSystem</span></a>.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>scheme</strong><strong>[in]</strong> a Uri scheme which the factory will handle. If a factory has already been registered for a scheme, the new factory will be ignored. </p></li>
<li><p><strong>factory</strong><strong>[in]</strong> a function which can produce a <a class="reference internal" href="#classarrow_1_1fs_1_1_file_system"><span class="std std-ref">FileSystem</span></a> for Uris which match scheme. </p></li>
<li><p><strong>finalizer</strong><strong>[in]</strong> a function which must be called to finalize the factory before the process exits, or nullptr if no finalization is necessary. </p></li>
</ul>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>raises KeyError if a name collision occurs. </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv423LoadFileSystemFactoriesPKc">
<span id="_CPPv323LoadFileSystemFactoriesPKc"></span><span id="_CPPv223LoadFileSystemFactoriesPKc"></span><span id="LoadFileSystemFactories__cCP"></span><span class="target" id="group__filesystem-factory-registration_1gaf508bc936e847cc37d7fed5d5304f87b"></span><span class="n"><span class="pre">Status</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">LoadFileSystemFactories</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="kt"><span class="pre">char</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">libpath</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv423LoadFileSystemFactoriesPKc" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Register <a class="reference internal" href="#classarrow_1_1fs_1_1_file_system"><span class="std std-ref">FileSystem</span></a> factories from a shared library. </p>
<p><a class="reference internal" href="#classarrow_1_1fs_1_1_file_system"><span class="std std-ref">FileSystem</span></a> implementations may be housed in separate shared libraries and only registered when the shared library is explicitly loaded. <a class="reference internal" href="#structarrow_1_1fs_1_1_file_system_registrar"><span class="std std-ref">FileSystemRegistrar</span></a> is provided to simplify definition of such libraries: each instance at namespace scope in the library will register a factory for a scheme. Any library which uses FileSystemRegistrars and which must be dynamically loaded should be loaded using <a class="reference internal" href="#group__filesystem-factory-registration_1gaf508bc936e847cc37d7fed5d5304f87b"><span class="std std-ref">LoadFileSystemFactories()</span></a>, which will additionally merge registries are if necessary (static linkage to arrow can produce isolated registries). </p>
</dd></dl>
<dl class="cpp macro">
<dt class="sig sig-object cpp" id="c.ARROW_REGISTER_FILESYSTEM">
<span class="target" id="group__filesystem-factory-registration_1gad38f95957ffbc6429a58cc15a8bf57eb"></span><span class="sig-name descname"><span class="n"><span class="pre">ARROW_REGISTER_FILESYSTEM</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">scheme</span></span>, <span class="n"><span class="pre">factory_function</span></span>, <span class="n"><span class="pre">finalizer</span></span><span class="sig-paren">)</span><a class="headerlink" href="#c.ARROW_REGISTER_FILESYSTEM" title="Permalink to this definition">#</a><br /></dt>
<dd></dd></dl>
<dl class="cpp struct">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs19FileSystemRegistrarE">
<span id="_CPPv3N5arrow2fs19FileSystemRegistrarE"></span><span id="_CPPv2N5arrow2fs19FileSystemRegistrarE"></span><span id="arrow::fs::FileSystemRegistrar"></span><span class="target" id="structarrow_1_1fs_1_1_file_system_registrar"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">FileSystemRegistrar</span></span></span><a class="headerlink" href="#_CPPv4N5arrow2fs19FileSystemRegistrarE" title="Permalink to this definition">#</a><br /></dt>
<dd><div class="docutils container">
<em>#include &lt;arrow/filesystem/filesystem.h&gt;</em></div>
</dd></dl>
</section>
<section id="concrete-implementations">
<h2>Concrete implementations<a class="headerlink" href="#concrete-implementations" title="Permalink to this heading">#</a></h2>
<section id="subtree-filesystem-wrapper">
<h3>“Subtree” filesystem wrapper<a class="headerlink" href="#subtree-filesystem-wrapper" title="Permalink to this heading">#</a></h3>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs17SubTreeFileSystemE">
<span id="_CPPv3N5arrow2fs17SubTreeFileSystemE"></span><span id="_CPPv2N5arrow2fs17SubTreeFileSystemE"></span><span id="arrow::fs::SubTreeFileSystem"></span><span class="target" id="classarrow_1_1fs_1_1_sub_tree_file_system"></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">SubTreeFileSystem</span></span></span><span class="w"> </span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="k"><span class="pre">public</span></span><span class="w"> </span><span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">fs</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="#_CPPv4N5arrow2fs10FileSystemE" title="arrow::fs::FileSystem"><span class="n"><span class="pre">FileSystem</span></span></a><a class="headerlink" href="#_CPPv4N5arrow2fs17SubTreeFileSystemE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>A <a class="reference internal" href="#classarrow_1_1fs_1_1_file_system"><span class="std std-ref">FileSystem</span></a> implementation that delegates to another implementation after prepending a fixed base path. </p>
<p>This is useful to expose a logical view of a subtree of a filesystem, for example a directory in a <a class="reference internal" href="#classarrow_1_1fs_1_1_local_file_system"><span class="std std-ref">LocalFileSystem</span></a>. This works on abstract paths, i.e. paths using forward slashes and and a single root “/”. Windows paths are not guaranteed to work. This makes no security guarantee. For example, symlinks may allow to “escape” the subtree and access other parts of the underlying filesystem. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-functions">Public Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs17SubTreeFileSystem13NormalizePathENSt6stringE">
<span id="_CPPv3N5arrow2fs17SubTreeFileSystem13NormalizePathENSt6stringE"></span><span id="_CPPv2N5arrow2fs17SubTreeFileSystem13NormalizePathENSt6stringE"></span><span id="arrow::fs::SubTreeFileSystem::NormalizePath__ss"></span><span class="target" id="classarrow_1_1fs_1_1_sub_tree_file_system_1acf057b420cd5819efb756be8f0f7b841"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NormalizePath</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">path</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs17SubTreeFileSystem13NormalizePathENSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Normalize path for the given filesystem. </p>
<p>The default implementation of this method is a no-op, but subclasses may allow normalizing irregular path forms (such as Windows local paths). </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow2fs17SubTreeFileSystem11PathFromUriERKNSt6stringE">
<span id="_CPPv3NK5arrow2fs17SubTreeFileSystem11PathFromUriERKNSt6stringE"></span><span id="_CPPv2NK5arrow2fs17SubTreeFileSystem11PathFromUriERKNSt6stringE"></span><span id="arrow::fs::SubTreeFileSystem::PathFromUri__ssCRC"></span><span class="target" id="classarrow_1_1fs_1_1_sub_tree_file_system_1ab7c72fb529501e372cf8fd7a8369a224"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">PathFromUri</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">uri_string</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4NK5arrow2fs17SubTreeFileSystem11PathFromUriERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Ensure a URI (or path) is compatible with the given filesystem and return the path. </p>
<p>
This method will check to ensure the given filesystem is compatible with the URI. This can be useful when the user provides both a URI and a filesystem or when a user provides multiple URIs that should be compatible with the same filesystem.</p>
<p>uri_string can be an absolute path instead of a URI. In that case it will ensure the filesystem (if supplied) is the local filesystem (or some custom filesystem that is capable of reading local paths) and will normalize the path’s file separators.</p>
<p>Note, this method only checks to ensure the URI scheme is valid. It will not detect inconsistencies like a mismatching region or endpoint override.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>uri_string</strong> – A URI representing a resource in the given filesystem.</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>The path inside the filesystem that is indicated by the URI. </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs17SubTreeFileSystem11GetFileInfoERKNSt6stringE">
<span id="_CPPv3N5arrow2fs17SubTreeFileSystem11GetFileInfoERKNSt6stringE"></span><span id="_CPPv2N5arrow2fs17SubTreeFileSystem11GetFileInfoERKNSt6stringE"></span><span id="arrow::fs::SubTreeFileSystem::GetFileInfo__ssCR"></span><span class="target" id="classarrow_1_1fs_1_1_sub_tree_file_system_1a230ca4c8bea4a1ec0261532cc2ba243a"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow2fs8FileInfoE" title="arrow::fs::FileInfo"><span class="n"><span class="pre">FileInfo</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">GetFileInfo</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs17SubTreeFileSystem11GetFileInfoERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Get info for the given target. </p>
<p>Any symlink is automatically dereferenced, recursively. A nonexistent or unreachable file returns an Ok status and has a FileType of value NotFound. An error status indicates a truly exceptional condition (low-level I/O error, etc.). </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs17SubTreeFileSystem11GetFileInfoERK12FileSelector">
<span id="_CPPv3N5arrow2fs17SubTreeFileSystem11GetFileInfoERK12FileSelector"></span><span id="_CPPv2N5arrow2fs17SubTreeFileSystem11GetFileInfoERK12FileSelector"></span><span id="arrow::fs::SubTreeFileSystem::GetFileInfo__FileSelectorCR"></span><span class="target" id="classarrow_1_1fs_1_1_sub_tree_file_system_1af1cecdabe21abe013475a80198ca7a57"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">FileInfoVector</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">GetFileInfo</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow2fs12FileSelectorE" title="arrow::fs::FileSelector"><span class="n"><span class="pre">FileSelector</span></span></a><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">select</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs17SubTreeFileSystem11GetFileInfoERK12FileSelector" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Same, according to a selector. </p>
<p>The selector’s base directory will not be part of the results, even if it exists. If it doesn’t exist, see <code class="docutils literal notranslate"><a class="reference internal" href="#structarrow_1_1fs_1_1_file_selector_1aead1e24f5aa8bb7a3e893436cde83ea7"><span class="std std-ref"><span class="pre">FileSelector::allow_not_found</span></span></a></code>. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs17SubTreeFileSystem20GetFileInfoGeneratorERK12FileSelector">
<span id="_CPPv3N5arrow2fs17SubTreeFileSystem20GetFileInfoGeneratorERK12FileSelector"></span><span id="_CPPv2N5arrow2fs17SubTreeFileSystem20GetFileInfoGeneratorERK12FileSelector"></span><span id="arrow::fs::SubTreeFileSystem::GetFileInfoGenerator__FileSelectorCR"></span><span class="target" id="classarrow_1_1fs_1_1_sub_tree_file_system_1aa6302240206f5a67beb72da97573eec4"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="n"><span class="pre">FileInfoGenerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">GetFileInfoGenerator</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow2fs12FileSelectorE" title="arrow::fs::FileSelector"><span class="n"><span class="pre">FileSelector</span></span></a><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">select</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs17SubTreeFileSystem20GetFileInfoGeneratorERK12FileSelector" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Streaming async version of GetFileInfo. </p>
<p>The returned generator is not async-reentrant, i.e. you need to wait for the returned future to complete before calling the generator again. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs17SubTreeFileSystem9CreateDirERKNSt6stringEb">
<span id="_CPPv3N5arrow2fs17SubTreeFileSystem9CreateDirERKNSt6stringEb"></span><span id="_CPPv2N5arrow2fs17SubTreeFileSystem9CreateDirERKNSt6stringEb"></span><span id="arrow::fs::SubTreeFileSystem::CreateDir__ssCR.b"></span><span class="target" id="classarrow_1_1fs_1_1_sub_tree_file_system_1a8aa10fb38a312e841ceb014d892ab67a"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">CreateDir</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span>, <span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">recursive</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs17SubTreeFileSystem9CreateDirERKNSt6stringEb" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Create a directory and subdirectories. </p>
<p>This function succeeds if the directory already exists. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs17SubTreeFileSystem9DeleteDirERKNSt6stringE">
<span id="_CPPv3N5arrow2fs17SubTreeFileSystem9DeleteDirERKNSt6stringE"></span><span id="_CPPv2N5arrow2fs17SubTreeFileSystem9DeleteDirERKNSt6stringE"></span><span id="arrow::fs::SubTreeFileSystem::DeleteDir__ssCR"></span><span class="target" id="classarrow_1_1fs_1_1_sub_tree_file_system_1a27ea0fcb3ed3da837369b8306e73dd89"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">DeleteDir</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs17SubTreeFileSystem9DeleteDirERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Delete a directory and its contents, recursively. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs17SubTreeFileSystem17DeleteDirContentsERKNSt6stringEb">
<span id="_CPPv3N5arrow2fs17SubTreeFileSystem17DeleteDirContentsERKNSt6stringEb"></span><span id="_CPPv2N5arrow2fs17SubTreeFileSystem17DeleteDirContentsERKNSt6stringEb"></span><span id="arrow::fs::SubTreeFileSystem::DeleteDirContents__ssCR.b"></span><span class="target" id="classarrow_1_1fs_1_1_sub_tree_file_system_1aad1eb51acd3e4e268ff02420e1a66912"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">DeleteDirContents</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span>, <span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">missing_dir_ok</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs17SubTreeFileSystem17DeleteDirContentsERKNSt6stringEb" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Delete a directory’s contents, recursively. </p>
<p>Like DeleteDir, but doesn’t delete the directory itself. Passing an empty path (”” or “/”) is disallowed, see DeleteRootDirContents. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs17SubTreeFileSystem21DeleteRootDirContentsEv">
<span id="_CPPv3N5arrow2fs17SubTreeFileSystem21DeleteRootDirContentsEv"></span><span id="_CPPv2N5arrow2fs17SubTreeFileSystem21DeleteRootDirContentsEv"></span><span id="arrow::fs::SubTreeFileSystem::DeleteRootDirContents"></span><span class="target" id="classarrow_1_1fs_1_1_sub_tree_file_system_1aa5ba3effd06e94972c965bad3ed4433a"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">DeleteRootDirContents</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs17SubTreeFileSystem21DeleteRootDirContentsEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>EXPERIMENTAL: Delete the root directory’s contents, recursively. </p>
<p>Implementations may decide to raise an error if this operation is too dangerous. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs17SubTreeFileSystem10DeleteFileERKNSt6stringE">
<span id="_CPPv3N5arrow2fs17SubTreeFileSystem10DeleteFileERKNSt6stringE"></span><span id="_CPPv2N5arrow2fs17SubTreeFileSystem10DeleteFileERKNSt6stringE"></span><span id="arrow::fs::SubTreeFileSystem::DeleteFile__ssCR"></span><span class="target" id="classarrow_1_1fs_1_1_sub_tree_file_system_1afca69141480bf1990d3cfb90b6c07cc5"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">DeleteFile</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs17SubTreeFileSystem10DeleteFileERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Delete a file. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs17SubTreeFileSystem4MoveERKNSt6stringERKNSt6stringE">
<span id="_CPPv3N5arrow2fs17SubTreeFileSystem4MoveERKNSt6stringERKNSt6stringE"></span><span id="_CPPv2N5arrow2fs17SubTreeFileSystem4MoveERKNSt6stringERKNSt6stringE"></span><span id="arrow::fs::SubTreeFileSystem::Move__ssCR.ssCR"></span><span class="target" id="classarrow_1_1fs_1_1_sub_tree_file_system_1a408f22a2665b45596a8b10d76861f383"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Move</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">src</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">dest</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs17SubTreeFileSystem4MoveERKNSt6stringERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Move / rename a file or directory. </p>
<p>If the destination exists:<ul class="simple">
<li><p>if it is a non-empty directory, an error is returned</p></li>
<li><p>otherwise, if it has the same type as the source, it is replaced</p></li>
<li><p>otherwise, behavior is unspecified (implementation-dependent). </p></li>
</ul>
</p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs17SubTreeFileSystem8CopyFileERKNSt6stringERKNSt6stringE">
<span id="_CPPv3N5arrow2fs17SubTreeFileSystem8CopyFileERKNSt6stringERKNSt6stringE"></span><span id="_CPPv2N5arrow2fs17SubTreeFileSystem8CopyFileERKNSt6stringERKNSt6stringE"></span><span id="arrow::fs::SubTreeFileSystem::CopyFile__ssCR.ssCR"></span><span class="target" id="classarrow_1_1fs_1_1_sub_tree_file_system_1a8c6f0585e7844aaa3e44a5a17197ea09"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">CopyFile</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">src</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">dest</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs17SubTreeFileSystem8CopyFileERKNSt6stringERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Copy a file. </p>
<p>If the destination exists and is a directory, an error is returned. Otherwise, it is replaced. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs17SubTreeFileSystem15OpenInputStreamERKNSt6stringE">
<span id="_CPPv3N5arrow2fs17SubTreeFileSystem15OpenInputStreamERKNSt6stringE"></span><span id="_CPPv2N5arrow2fs17SubTreeFileSystem15OpenInputStreamERKNSt6stringE"></span><span id="arrow::fs::SubTreeFileSystem::OpenInputStream__ssCR"></span><span class="target" id="classarrow_1_1fs_1_1_sub_tree_file_system_1a52ff71a2eed88eba363761bc214917e6"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="io.html#_CPPv4N5arrow2io11InputStreamE" title="arrow::io::InputStream"><span class="n"><span class="pre">InputStream</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">OpenInputStream</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs17SubTreeFileSystem15OpenInputStreamERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Open an input stream for sequential reading. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs17SubTreeFileSystem15OpenInputStreamERK8FileInfo">
<span id="_CPPv3N5arrow2fs17SubTreeFileSystem15OpenInputStreamERK8FileInfo"></span><span id="_CPPv2N5arrow2fs17SubTreeFileSystem15OpenInputStreamERK8FileInfo"></span><span id="arrow::fs::SubTreeFileSystem::OpenInputStream__FileInfoCR"></span><span class="target" id="classarrow_1_1fs_1_1_sub_tree_file_system_1adfbf878111a2bc952149468bd3543d49"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="io.html#_CPPv4N5arrow2io11InputStreamE" title="arrow::io::InputStream"><span class="n"><span class="pre">InputStream</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">OpenInputStream</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow2fs8FileInfoE" title="arrow::fs::FileInfo"><span class="n"><span class="pre">FileInfo</span></span></a><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">info</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs17SubTreeFileSystem15OpenInputStreamERK8FileInfo" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Open an input stream for sequential reading. </p>
<p>This override assumes the given <a class="reference internal" href="#structarrow_1_1fs_1_1_file_info"><span class="std std-ref">FileInfo</span></a> validly represents the file’s characteristics, and may optimize access depending on them (for example avoid querying the file size or its existence). </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs17SubTreeFileSystem13OpenInputFileERKNSt6stringE">
<span id="_CPPv3N5arrow2fs17SubTreeFileSystem13OpenInputFileERKNSt6stringE"></span><span id="_CPPv2N5arrow2fs17SubTreeFileSystem13OpenInputFileERKNSt6stringE"></span><span id="arrow::fs::SubTreeFileSystem::OpenInputFile__ssCR"></span><span class="target" id="classarrow_1_1fs_1_1_sub_tree_file_system_1a3870d3e69059dfa8a2c215174a540d2a"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="io.html#_CPPv4N5arrow2io16RandomAccessFileE" title="arrow::io::RandomAccessFile"><span class="n"><span class="pre">RandomAccessFile</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">OpenInputFile</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs17SubTreeFileSystem13OpenInputFileERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Open an input file for random access reading. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs17SubTreeFileSystem13OpenInputFileERK8FileInfo">
<span id="_CPPv3N5arrow2fs17SubTreeFileSystem13OpenInputFileERK8FileInfo"></span><span id="_CPPv2N5arrow2fs17SubTreeFileSystem13OpenInputFileERK8FileInfo"></span><span id="arrow::fs::SubTreeFileSystem::OpenInputFile__FileInfoCR"></span><span class="target" id="classarrow_1_1fs_1_1_sub_tree_file_system_1a81e23369e3fa3eb0a1498f3b33c5d6c9"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="io.html#_CPPv4N5arrow2io16RandomAccessFileE" title="arrow::io::RandomAccessFile"><span class="n"><span class="pre">RandomAccessFile</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">OpenInputFile</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow2fs8FileInfoE" title="arrow::fs::FileInfo"><span class="n"><span class="pre">FileInfo</span></span></a><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">info</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs17SubTreeFileSystem13OpenInputFileERK8FileInfo" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Open an input file for random access reading. </p>
<p>This override assumes the given <a class="reference internal" href="#structarrow_1_1fs_1_1_file_info"><span class="std std-ref">FileInfo</span></a> validly represents the file’s characteristics, and may optimize access depending on them (for example avoid querying the file size or its existence). </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs17SubTreeFileSystem20OpenInputStreamAsyncERKNSt6stringE">
<span id="_CPPv3N5arrow2fs17SubTreeFileSystem20OpenInputStreamAsyncERKNSt6stringE"></span><span id="_CPPv2N5arrow2fs17SubTreeFileSystem20OpenInputStreamAsyncERKNSt6stringE"></span><span id="arrow::fs::SubTreeFileSystem::OpenInputStreamAsync__ssCR"></span><span class="target" id="classarrow_1_1fs_1_1_sub_tree_file_system_1a2158e3713ce641d6b6ac89c07baed8ff"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="async.html#_CPPv4I0EN5arrow6FutureE" title="arrow::Future"><span class="n"><span class="pre">Future</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="io.html#_CPPv4N5arrow2io11InputStreamE" title="arrow::io::InputStream"><span class="n"><span class="pre">InputStream</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">OpenInputStreamAsync</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs17SubTreeFileSystem20OpenInputStreamAsyncERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Async version of OpenInputStream. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs17SubTreeFileSystem20OpenInputStreamAsyncERK8FileInfo">
<span id="_CPPv3N5arrow2fs17SubTreeFileSystem20OpenInputStreamAsyncERK8FileInfo"></span><span id="_CPPv2N5arrow2fs17SubTreeFileSystem20OpenInputStreamAsyncERK8FileInfo"></span><span id="arrow::fs::SubTreeFileSystem::OpenInputStreamAsync__FileInfoCR"></span><span class="target" id="classarrow_1_1fs_1_1_sub_tree_file_system_1a12331c478c069bb1fb248e9e8bb61c07"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="async.html#_CPPv4I0EN5arrow6FutureE" title="arrow::Future"><span class="n"><span class="pre">Future</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="io.html#_CPPv4N5arrow2io11InputStreamE" title="arrow::io::InputStream"><span class="n"><span class="pre">InputStream</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">OpenInputStreamAsync</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow2fs8FileInfoE" title="arrow::fs::FileInfo"><span class="n"><span class="pre">FileInfo</span></span></a><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">info</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs17SubTreeFileSystem20OpenInputStreamAsyncERK8FileInfo" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Async version of OpenInputStream. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs17SubTreeFileSystem18OpenInputFileAsyncERKNSt6stringE">
<span id="_CPPv3N5arrow2fs17SubTreeFileSystem18OpenInputFileAsyncERKNSt6stringE"></span><span id="_CPPv2N5arrow2fs17SubTreeFileSystem18OpenInputFileAsyncERKNSt6stringE"></span><span id="arrow::fs::SubTreeFileSystem::OpenInputFileAsync__ssCR"></span><span class="target" id="classarrow_1_1fs_1_1_sub_tree_file_system_1ae5625de38fd137f66d599360958ebead"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="async.html#_CPPv4I0EN5arrow6FutureE" title="arrow::Future"><span class="n"><span class="pre">Future</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="io.html#_CPPv4N5arrow2io16RandomAccessFileE" title="arrow::io::RandomAccessFile"><span class="n"><span class="pre">RandomAccessFile</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">OpenInputFileAsync</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs17SubTreeFileSystem18OpenInputFileAsyncERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Async version of OpenInputFile. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs17SubTreeFileSystem18OpenInputFileAsyncERK8FileInfo">
<span id="_CPPv3N5arrow2fs17SubTreeFileSystem18OpenInputFileAsyncERK8FileInfo"></span><span id="_CPPv2N5arrow2fs17SubTreeFileSystem18OpenInputFileAsyncERK8FileInfo"></span><span id="arrow::fs::SubTreeFileSystem::OpenInputFileAsync__FileInfoCR"></span><span class="target" id="classarrow_1_1fs_1_1_sub_tree_file_system_1aaeef4f5f0349a61626b3dc4d12982374"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="async.html#_CPPv4I0EN5arrow6FutureE" title="arrow::Future"><span class="n"><span class="pre">Future</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="io.html#_CPPv4N5arrow2io16RandomAccessFileE" title="arrow::io::RandomAccessFile"><span class="n"><span class="pre">RandomAccessFile</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">OpenInputFileAsync</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow2fs8FileInfoE" title="arrow::fs::FileInfo"><span class="n"><span class="pre">FileInfo</span></span></a><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">info</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs17SubTreeFileSystem18OpenInputFileAsyncERK8FileInfo" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Async version of OpenInputFile. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs17SubTreeFileSystem16OpenOutputStreamERKNSt6stringERKNSt10shared_ptrIK16KeyValueMetadataEE">
<span id="_CPPv3N5arrow2fs17SubTreeFileSystem16OpenOutputStreamERKNSt6stringERKNSt10shared_ptrIK16KeyValueMetadataEE"></span><span id="_CPPv2N5arrow2fs17SubTreeFileSystem16OpenOutputStreamERKNSt6stringERKNSt10shared_ptrIK16KeyValueMetadataEE"></span><span id="arrow::fs::SubTreeFileSystem::OpenOutputStream__ssCR.std::shared_ptr:KeyValueMetadataC:CR"></span><span class="target" id="classarrow_1_1fs_1_1_sub_tree_file_system_1a374432dfc19869f83515dfc40aadbb30"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="io.html#_CPPv4N5arrow2io12OutputStreamE" title="arrow::io::OutputStream"><span class="n"><span class="pre">OutputStream</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">OpenOutputStream</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="datatype.html#_CPPv4N5arrow16KeyValueMetadataE" title="arrow::KeyValueMetadata"><span class="n"><span class="pre">KeyValueMetadata</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">metadata</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs17SubTreeFileSystem16OpenOutputStreamERKNSt6stringERKNSt10shared_ptrIK16KeyValueMetadataEE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Open an output stream for sequential writing. </p>
<p>If the target already exists, existing data is truncated. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs17SubTreeFileSystem16OpenAppendStreamERKNSt6stringERKNSt10shared_ptrIK16KeyValueMetadataEE">
<span id="_CPPv3N5arrow2fs17SubTreeFileSystem16OpenAppendStreamERKNSt6stringERKNSt10shared_ptrIK16KeyValueMetadataEE"></span><span id="_CPPv2N5arrow2fs17SubTreeFileSystem16OpenAppendStreamERKNSt6stringERKNSt10shared_ptrIK16KeyValueMetadataEE"></span><span id="arrow::fs::SubTreeFileSystem::OpenAppendStream__ssCR.std::shared_ptr:KeyValueMetadataC:CR"></span><span class="target" id="classarrow_1_1fs_1_1_sub_tree_file_system_1a0653674a2b247f513271abcbc5cd977a"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="io.html#_CPPv4N5arrow2io12OutputStreamE" title="arrow::io::OutputStream"><span class="n"><span class="pre">OutputStream</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">OpenAppendStream</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="datatype.html#_CPPv4N5arrow16KeyValueMetadataE" title="arrow::KeyValueMetadata"><span class="n"><span class="pre">KeyValueMetadata</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">metadata</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs17SubTreeFileSystem16OpenAppendStreamERKNSt6stringERKNSt10shared_ptrIK16KeyValueMetadataEE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Open an output stream for appending. </p>
<p>If the target doesn’t exist, a new empty file is created.</p>
<p>Note: some filesystem implementations do not support efficient appending to an existing file, in which case this method will return NotImplemented. Consider writing to multiple files (using e.g. the dataset layer) instead. </p>
</dd></dl>
</div>
</dd></dl>
</section>
<section id="local-filesystem">
<h3>Local filesystem<a class="headerlink" href="#local-filesystem" title="Permalink to this heading">#</a></h3>
<dl class="cpp struct">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs22LocalFileSystemOptionsE">
<span id="_CPPv3N5arrow2fs22LocalFileSystemOptionsE"></span><span id="_CPPv2N5arrow2fs22LocalFileSystemOptionsE"></span><span id="arrow::fs::LocalFileSystemOptions"></span><span class="target" id="structarrow_1_1fs_1_1_local_file_system_options"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">LocalFileSystemOptions</span></span></span><a class="headerlink" href="#_CPPv4N5arrow2fs22LocalFileSystemOptionsE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Options for the <a class="reference internal" href="#classarrow_1_1fs_1_1_local_file_system"><span class="std std-ref">LocalFileSystem</span></a> implementation. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs22LocalFileSystemOptions8use_mmapE">
<span id="_CPPv3N5arrow2fs22LocalFileSystemOptions8use_mmapE"></span><span id="_CPPv2N5arrow2fs22LocalFileSystemOptions8use_mmapE"></span><span id="arrow::fs::LocalFileSystemOptions::use_mmap__b"></span><span class="target" id="structarrow_1_1fs_1_1_local_file_system_options_1adf61f0166aa9892516e11e4eaeb24c41"></span><span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">use_mmap</span></span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="k"><span class="pre">false</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs22LocalFileSystemOptions8use_mmapE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Whether OpenInputStream and OpenInputFile return a mmap’ed file, or a regular one. </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs22LocalFileSystemOptions19directory_readaheadE">
<span id="_CPPv3N5arrow2fs22LocalFileSystemOptions19directory_readaheadE"></span><span id="_CPPv2N5arrow2fs22LocalFileSystemOptions19directory_readaheadE"></span><span id="arrow::fs::LocalFileSystemOptions::directory_readahead__int32_t"></span><span class="target" id="structarrow_1_1fs_1_1_local_file_system_options_1abb375f77399874ee1561293ee58b6018"></span><span class="n"><span class="pre">int32_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">directory_readahead</span></span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">kDefaultDirectoryReadahead</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs22LocalFileSystemOptions19directory_readaheadE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Options related to <code class="docutils literal notranslate"><span class="pre">GetFileInfoGenerator</span></code> interface. </p>
<p>EXPERIMENTAL: The maximum number of directories processed in parallel by <code class="docutils literal notranslate"><span class="pre">GetFileInfoGenerator</span></code>. </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs22LocalFileSystemOptions20file_info_batch_sizeE">
<span id="_CPPv3N5arrow2fs22LocalFileSystemOptions20file_info_batch_sizeE"></span><span id="_CPPv2N5arrow2fs22LocalFileSystemOptions20file_info_batch_sizeE"></span><span id="arrow::fs::LocalFileSystemOptions::file_info_batch_size__int32_t"></span><span class="target" id="structarrow_1_1fs_1_1_local_file_system_options_1a9fc4363d19e21f8adaa63149189048c9"></span><span class="n"><span class="pre">int32_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">file_info_batch_size</span></span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">kDefaultFileInfoBatchSize</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs22LocalFileSystemOptions20file_info_batch_sizeE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>EXPERIMENTAL: The maximum number of entries aggregated into each FileInfoVector chunk by <code class="docutils literal notranslate"><span class="pre">GetFileInfoGenerator</span></code>. </p>
<p>Since each <a class="reference internal" href="#structarrow_1_1fs_1_1_file_info"><span class="std std-ref">FileInfo</span></a> entry needs a separate <code class="docutils literal notranslate"><span class="pre">stat</span></code> system call, a directory with a very large number of files may take a lot of time to process entirely. By generating a FileInfoVector after this chunk size is reached, we ensure <a class="reference internal" href="#structarrow_1_1fs_1_1_file_info"><span class="std std-ref">FileInfo</span></a> entries can start being consumed from the FileInfoGenerator with less initial latency. </p>
</dd></dl>
</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-static-functions">Public Static Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs22LocalFileSystemOptions8DefaultsEv">
<span id="_CPPv3N5arrow2fs22LocalFileSystemOptions8DefaultsEv"></span><span id="_CPPv2N5arrow2fs22LocalFileSystemOptions8DefaultsEv"></span><span id="arrow::fs::LocalFileSystemOptions::Defaults"></span><span class="target" id="structarrow_1_1fs_1_1_local_file_system_options_1ac803845a58289627b5a277a24c1bb290"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow2fs22LocalFileSystemOptionsE" title="arrow::fs::LocalFileSystemOptions"><span class="n"><span class="pre">LocalFileSystemOptions</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Defaults</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow2fs22LocalFileSystemOptions8DefaultsEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Initialize with defaults. </p>
</dd></dl>
</div>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs15LocalFileSystemE">
<span id="_CPPv3N5arrow2fs15LocalFileSystemE"></span><span id="_CPPv2N5arrow2fs15LocalFileSystemE"></span><span id="arrow::fs::LocalFileSystem"></span><span class="target" id="classarrow_1_1fs_1_1_local_file_system"></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">LocalFileSystem</span></span></span><span class="w"> </span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="k"><span class="pre">public</span></span><span class="w"> </span><span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">fs</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="#_CPPv4N5arrow2fs10FileSystemE" title="arrow::fs::FileSystem"><span class="n"><span class="pre">FileSystem</span></span></a><a class="headerlink" href="#_CPPv4N5arrow2fs15LocalFileSystemE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>A <a class="reference internal" href="#classarrow_1_1fs_1_1_file_system"><span class="std std-ref">FileSystem</span></a> implementation accessing files on the local machine. </p>
<p>This class handles only <code class="docutils literal notranslate"><span class="pre">/</span></code>-separated paths. If desired, conversion from Windows backslash-separated paths should be done by the caller. Details such as symlinks are abstracted away (symlinks are always followed, except when deleting an entry). </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-functions">Public Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs15LocalFileSystem13NormalizePathENSt6stringE">
<span id="_CPPv3N5arrow2fs15LocalFileSystem13NormalizePathENSt6stringE"></span><span id="_CPPv2N5arrow2fs15LocalFileSystem13NormalizePathENSt6stringE"></span><span id="arrow::fs::LocalFileSystem::NormalizePath__ss"></span><span class="target" id="classarrow_1_1fs_1_1_local_file_system_1ac7091eeb585485c8ab48874ecd6637a2"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NormalizePath</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">path</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs15LocalFileSystem13NormalizePathENSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Normalize path for the given filesystem. </p>
<p>The default implementation of this method is a no-op, but subclasses may allow normalizing irregular path forms (such as Windows local paths). </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow2fs15LocalFileSystem11PathFromUriERKNSt6stringE">
<span id="_CPPv3NK5arrow2fs15LocalFileSystem11PathFromUriERKNSt6stringE"></span><span id="_CPPv2NK5arrow2fs15LocalFileSystem11PathFromUriERKNSt6stringE"></span><span id="arrow::fs::LocalFileSystem::PathFromUri__ssCRC"></span><span class="target" id="classarrow_1_1fs_1_1_local_file_system_1a50d0d439a3b40cf1a989eace6281fcf9"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">PathFromUri</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">uri_string</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4NK5arrow2fs15LocalFileSystem11PathFromUriERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Ensure a URI (or path) is compatible with the given filesystem and return the path. </p>
<p>
This method will check to ensure the given filesystem is compatible with the URI. This can be useful when the user provides both a URI and a filesystem or when a user provides multiple URIs that should be compatible with the same filesystem.</p>
<p>uri_string can be an absolute path instead of a URI. In that case it will ensure the filesystem (if supplied) is the local filesystem (or some custom filesystem that is capable of reading local paths) and will normalize the path’s file separators.</p>
<p>Note, this method only checks to ensure the URI scheme is valid. It will not detect inconsistencies like a mismatching region or endpoint override.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>uri_string</strong> – A URI representing a resource in the given filesystem.</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>The path inside the filesystem that is indicated by the URI. </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow2fs15LocalFileSystem7MakeUriENSt6stringE">
<span id="_CPPv3NK5arrow2fs15LocalFileSystem7MakeUriENSt6stringE"></span><span id="_CPPv2NK5arrow2fs15LocalFileSystem7MakeUriENSt6stringE"></span><span id="arrow::fs::LocalFileSystem::MakeUri__ssC"></span><span class="target" id="classarrow_1_1fs_1_1_local_file_system_1a8c209cc7a3e5fdbe83b9281594714e49"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">MakeUri</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">path</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4NK5arrow2fs15LocalFileSystem7MakeUriENSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Make a URI from which FileSystemFromUri produces an equivalent filesystem. </p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>path</strong> – The path component to use in the resulting URI </p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>A URI string, or an error if an equivalent URI cannot be produced </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs15LocalFileSystem11GetFileInfoERKNSt6stringE">
<span id="_CPPv3N5arrow2fs15LocalFileSystem11GetFileInfoERKNSt6stringE"></span><span id="_CPPv2N5arrow2fs15LocalFileSystem11GetFileInfoERKNSt6stringE"></span><span id="arrow::fs::LocalFileSystem::GetFileInfo__ssCR"></span><span class="target" id="classarrow_1_1fs_1_1_local_file_system_1a8ca80ceeed540c4c6773febf09324bbb"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow2fs8FileInfoE" title="arrow::fs::FileInfo"><span class="n"><span class="pre">FileInfo</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">GetFileInfo</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs15LocalFileSystem11GetFileInfoERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Get info for the given target. </p>
<p>Any symlink is automatically dereferenced, recursively. A nonexistent or unreachable file returns an Ok status and has a FileType of value NotFound. An error status indicates a truly exceptional condition (low-level I/O error, etc.). </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs15LocalFileSystem11GetFileInfoERK12FileSelector">
<span id="_CPPv3N5arrow2fs15LocalFileSystem11GetFileInfoERK12FileSelector"></span><span id="_CPPv2N5arrow2fs15LocalFileSystem11GetFileInfoERK12FileSelector"></span><span id="arrow::fs::LocalFileSystem::GetFileInfo__FileSelectorCR"></span><span class="target" id="classarrow_1_1fs_1_1_local_file_system_1a839deb4ee9b760cc519fa13a880b303d"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">vector</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow2fs8FileInfoE" title="arrow::fs::FileInfo"><span class="n"><span class="pre">FileInfo</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">GetFileInfo</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow2fs12FileSelectorE" title="arrow::fs::FileSelector"><span class="n"><span class="pre">FileSelector</span></span></a><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">select</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs15LocalFileSystem11GetFileInfoERK12FileSelector" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Same, according to a selector. </p>
<p>The selector’s base directory will not be part of the results, even if it exists. If it doesn’t exist, see <code class="docutils literal notranslate"><a class="reference internal" href="#structarrow_1_1fs_1_1_file_selector_1aead1e24f5aa8bb7a3e893436cde83ea7"><span class="std std-ref"><span class="pre">FileSelector::allow_not_found</span></span></a></code>. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs15LocalFileSystem20GetFileInfoGeneratorERK12FileSelector">
<span id="_CPPv3N5arrow2fs15LocalFileSystem20GetFileInfoGeneratorERK12FileSelector"></span><span id="_CPPv2N5arrow2fs15LocalFileSystem20GetFileInfoGeneratorERK12FileSelector"></span><span id="arrow::fs::LocalFileSystem::GetFileInfoGenerator__FileSelectorCR"></span><span class="target" id="classarrow_1_1fs_1_1_local_file_system_1acb6ea00da180bdcdc6a302a26bf10455"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="n"><span class="pre">FileInfoGenerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">GetFileInfoGenerator</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow2fs12FileSelectorE" title="arrow::fs::FileSelector"><span class="n"><span class="pre">FileSelector</span></span></a><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">select</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs15LocalFileSystem20GetFileInfoGeneratorERK12FileSelector" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Streaming async version of GetFileInfo. </p>
<p>The returned generator is not async-reentrant, i.e. you need to wait for the returned future to complete before calling the generator again. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs15LocalFileSystem9CreateDirERKNSt6stringEb">
<span id="_CPPv3N5arrow2fs15LocalFileSystem9CreateDirERKNSt6stringEb"></span><span id="_CPPv2N5arrow2fs15LocalFileSystem9CreateDirERKNSt6stringEb"></span><span id="arrow::fs::LocalFileSystem::CreateDir__ssCR.b"></span><span class="target" id="classarrow_1_1fs_1_1_local_file_system_1a6736e8cb94078485c5639ab35afe3dd6"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">CreateDir</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span>, <span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">recursive</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs15LocalFileSystem9CreateDirERKNSt6stringEb" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Create a directory and subdirectories. </p>
<p>This function succeeds if the directory already exists. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs15LocalFileSystem9DeleteDirERKNSt6stringE">
<span id="_CPPv3N5arrow2fs15LocalFileSystem9DeleteDirERKNSt6stringE"></span><span id="_CPPv2N5arrow2fs15LocalFileSystem9DeleteDirERKNSt6stringE"></span><span id="arrow::fs::LocalFileSystem::DeleteDir__ssCR"></span><span class="target" id="classarrow_1_1fs_1_1_local_file_system_1af0e422b359805e15aedf30063f433833"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">DeleteDir</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs15LocalFileSystem9DeleteDirERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Delete a directory and its contents, recursively. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs15LocalFileSystem17DeleteDirContentsERKNSt6stringEb">
<span id="_CPPv3N5arrow2fs15LocalFileSystem17DeleteDirContentsERKNSt6stringEb"></span><span id="_CPPv2N5arrow2fs15LocalFileSystem17DeleteDirContentsERKNSt6stringEb"></span><span id="arrow::fs::LocalFileSystem::DeleteDirContents__ssCR.b"></span><span class="target" id="classarrow_1_1fs_1_1_local_file_system_1a6890d5b5c77590b53a8a9dd9ab9adb68"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">DeleteDirContents</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span>, <span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">missing_dir_ok</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs15LocalFileSystem17DeleteDirContentsERKNSt6stringEb" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Delete a directory’s contents, recursively. </p>
<p>Like DeleteDir, but doesn’t delete the directory itself. Passing an empty path (”” or “/”) is disallowed, see DeleteRootDirContents. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs15LocalFileSystem21DeleteRootDirContentsEv">
<span id="_CPPv3N5arrow2fs15LocalFileSystem21DeleteRootDirContentsEv"></span><span id="_CPPv2N5arrow2fs15LocalFileSystem21DeleteRootDirContentsEv"></span><span id="arrow::fs::LocalFileSystem::DeleteRootDirContents"></span><span class="target" id="classarrow_1_1fs_1_1_local_file_system_1a797ef86ba52e181c2baef2d8d8670162"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">DeleteRootDirContents</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs15LocalFileSystem21DeleteRootDirContentsEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>EXPERIMENTAL: Delete the root directory’s contents, recursively. </p>
<p>Implementations may decide to raise an error if this operation is too dangerous. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs15LocalFileSystem10DeleteFileERKNSt6stringE">
<span id="_CPPv3N5arrow2fs15LocalFileSystem10DeleteFileERKNSt6stringE"></span><span id="_CPPv2N5arrow2fs15LocalFileSystem10DeleteFileERKNSt6stringE"></span><span id="arrow::fs::LocalFileSystem::DeleteFile__ssCR"></span><span class="target" id="classarrow_1_1fs_1_1_local_file_system_1a5699f4cd29913f3fd4a4f68e87c9185f"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">DeleteFile</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs15LocalFileSystem10DeleteFileERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Delete a file. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs15LocalFileSystem4MoveERKNSt6stringERKNSt6stringE">
<span id="_CPPv3N5arrow2fs15LocalFileSystem4MoveERKNSt6stringERKNSt6stringE"></span><span id="_CPPv2N5arrow2fs15LocalFileSystem4MoveERKNSt6stringERKNSt6stringE"></span><span id="arrow::fs::LocalFileSystem::Move__ssCR.ssCR"></span><span class="target" id="classarrow_1_1fs_1_1_local_file_system_1a2a6d70b440e851cc87b54daa40e4c9ef"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Move</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">src</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">dest</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs15LocalFileSystem4MoveERKNSt6stringERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Move / rename a file or directory. </p>
<p>If the destination exists:<ul class="simple">
<li><p>if it is a non-empty directory, an error is returned</p></li>
<li><p>otherwise, if it has the same type as the source, it is replaced</p></li>
<li><p>otherwise, behavior is unspecified (implementation-dependent). </p></li>
</ul>
</p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs15LocalFileSystem8CopyFileERKNSt6stringERKNSt6stringE">
<span id="_CPPv3N5arrow2fs15LocalFileSystem8CopyFileERKNSt6stringERKNSt6stringE"></span><span id="_CPPv2N5arrow2fs15LocalFileSystem8CopyFileERKNSt6stringERKNSt6stringE"></span><span id="arrow::fs::LocalFileSystem::CopyFile__ssCR.ssCR"></span><span class="target" id="classarrow_1_1fs_1_1_local_file_system_1a56afdbe5cbbea17d49a74cbccddf09be"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">CopyFile</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">src</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">dest</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs15LocalFileSystem8CopyFileERKNSt6stringERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Copy a file. </p>
<p>If the destination exists and is a directory, an error is returned. Otherwise, it is replaced. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs15LocalFileSystem15OpenInputStreamERKNSt6stringE">
<span id="_CPPv3N5arrow2fs15LocalFileSystem15OpenInputStreamERKNSt6stringE"></span><span id="_CPPv2N5arrow2fs15LocalFileSystem15OpenInputStreamERKNSt6stringE"></span><span id="arrow::fs::LocalFileSystem::OpenInputStream__ssCR"></span><span class="target" id="classarrow_1_1fs_1_1_local_file_system_1a0410e65a1f9b6260d86aa0719e20a0cf"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="io.html#_CPPv4N5arrow2io11InputStreamE" title="arrow::io::InputStream"><span class="n"><span class="pre">InputStream</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">OpenInputStream</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs15LocalFileSystem15OpenInputStreamERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Open an input stream for sequential reading. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs15LocalFileSystem13OpenInputFileERKNSt6stringE">
<span id="_CPPv3N5arrow2fs15LocalFileSystem13OpenInputFileERKNSt6stringE"></span><span id="_CPPv2N5arrow2fs15LocalFileSystem13OpenInputFileERKNSt6stringE"></span><span id="arrow::fs::LocalFileSystem::OpenInputFile__ssCR"></span><span class="target" id="classarrow_1_1fs_1_1_local_file_system_1a4e5e221818030bb56aba0c191eda5b0c"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="io.html#_CPPv4N5arrow2io16RandomAccessFileE" title="arrow::io::RandomAccessFile"><span class="n"><span class="pre">RandomAccessFile</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">OpenInputFile</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs15LocalFileSystem13OpenInputFileERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Open an input file for random access reading. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs15LocalFileSystem16OpenOutputStreamERKNSt6stringERKNSt10shared_ptrIK16KeyValueMetadataEE">
<span id="_CPPv3N5arrow2fs15LocalFileSystem16OpenOutputStreamERKNSt6stringERKNSt10shared_ptrIK16KeyValueMetadataEE"></span><span id="_CPPv2N5arrow2fs15LocalFileSystem16OpenOutputStreamERKNSt6stringERKNSt10shared_ptrIK16KeyValueMetadataEE"></span><span id="arrow::fs::LocalFileSystem::OpenOutputStream__ssCR.std::shared_ptr:KeyValueMetadataC:CR"></span><span class="target" id="classarrow_1_1fs_1_1_local_file_system_1a02508eeb2dea12b1262edf47fb5b7562"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="io.html#_CPPv4N5arrow2io12OutputStreamE" title="arrow::io::OutputStream"><span class="n"><span class="pre">OutputStream</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">OpenOutputStream</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="datatype.html#_CPPv4N5arrow16KeyValueMetadataE" title="arrow::KeyValueMetadata"><span class="n"><span class="pre">KeyValueMetadata</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">metadata</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs15LocalFileSystem16OpenOutputStreamERKNSt6stringERKNSt10shared_ptrIK16KeyValueMetadataEE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Open an output stream for sequential writing. </p>
<p>If the target already exists, existing data is truncated. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs15LocalFileSystem16OpenAppendStreamERKNSt6stringERKNSt10shared_ptrIK16KeyValueMetadataEE">
<span id="_CPPv3N5arrow2fs15LocalFileSystem16OpenAppendStreamERKNSt6stringERKNSt10shared_ptrIK16KeyValueMetadataEE"></span><span id="_CPPv2N5arrow2fs15LocalFileSystem16OpenAppendStreamERKNSt6stringERKNSt10shared_ptrIK16KeyValueMetadataEE"></span><span id="arrow::fs::LocalFileSystem::OpenAppendStream__ssCR.std::shared_ptr:KeyValueMetadataC:CR"></span><span class="target" id="classarrow_1_1fs_1_1_local_file_system_1a2a7ce3979efbb993295c34a5558fe12b"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="io.html#_CPPv4N5arrow2io12OutputStreamE" title="arrow::io::OutputStream"><span class="n"><span class="pre">OutputStream</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">OpenAppendStream</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="datatype.html#_CPPv4N5arrow16KeyValueMetadataE" title="arrow::KeyValueMetadata"><span class="n"><span class="pre">KeyValueMetadata</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">metadata</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs15LocalFileSystem16OpenAppendStreamERKNSt6stringERKNSt10shared_ptrIK16KeyValueMetadataEE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Open an output stream for appending. </p>
<p>If the target doesn’t exist, a new empty file is created.</p>
<p>Note: some filesystem implementations do not support efficient appending to an existing file, in which case this method will return NotImplemented. Consider writing to multiple files (using e.g. the dataset layer) instead. </p>
</dd></dl>
</div>
</dd></dl>
</section>
<section id="s3-filesystem">
<h3>S3 filesystem<a class="headerlink" href="#s3-filesystem" title="Permalink to this heading">#</a></h3>
<dl class="cpp struct">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs9S3OptionsE">
<span id="_CPPv3N5arrow2fs9S3OptionsE"></span><span id="_CPPv2N5arrow2fs9S3OptionsE"></span><span id="arrow::fs::S3Options"></span><span class="target" id="structarrow_1_1fs_1_1_s3_options"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">S3Options</span></span></span><a class="headerlink" href="#_CPPv4N5arrow2fs9S3OptionsE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Options for the <a class="reference internal" href="#classarrow_1_1fs_1_1_s3_file_system"><span class="std std-ref">S3FileSystem</span></a> implementation. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-functions">Public Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs9S3Options27ConfigureDefaultCredentialsEv">
<span id="_CPPv3N5arrow2fs9S3Options27ConfigureDefaultCredentialsEv"></span><span id="_CPPv2N5arrow2fs9S3Options27ConfigureDefaultCredentialsEv"></span><span id="arrow::fs::S3Options::ConfigureDefaultCredentials"></span><span class="target" id="structarrow_1_1fs_1_1_s3_options_1abe2b5fcb1b150280dea1706c84433e24"></span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ConfigureDefaultCredentials</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow2fs9S3Options27ConfigureDefaultCredentialsEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Configure with the default AWS credentials provider chain. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs9S3Options29ConfigureAnonymousCredentialsEv">
<span id="_CPPv3N5arrow2fs9S3Options29ConfigureAnonymousCredentialsEv"></span><span id="_CPPv2N5arrow2fs9S3Options29ConfigureAnonymousCredentialsEv"></span><span id="arrow::fs::S3Options::ConfigureAnonymousCredentials"></span><span class="target" id="structarrow_1_1fs_1_1_s3_options_1a6443c7e2539321b02a0f309b114f1fff"></span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ConfigureAnonymousCredentials</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow2fs9S3Options29ConfigureAnonymousCredentialsEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Configure with anonymous credentials. This will only let you access public buckets. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs9S3Options18ConfigureAccessKeyERKNSt6stringERKNSt6stringERKNSt6stringE">
<span id="_CPPv3N5arrow2fs9S3Options18ConfigureAccessKeyERKNSt6stringERKNSt6stringERKNSt6stringE"></span><span id="_CPPv2N5arrow2fs9S3Options18ConfigureAccessKeyERKNSt6stringERKNSt6stringERKNSt6stringE"></span><span id="arrow::fs::S3Options::ConfigureAccessKey__ssCR.ssCR.ssCR"></span><span class="target" id="structarrow_1_1fs_1_1_s3_options_1a8920a3b811bfdd209aaabbbb47a335b2"></span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ConfigureAccessKey</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">access_key</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">secret_key</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">session_token</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="s"><span class="pre">&quot;&quot;</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow2fs9S3Options18ConfigureAccessKeyERKNSt6stringERKNSt6stringERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Configure with explicit access and secret key. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs9S3Options30ConfigureAssumeRoleCredentialsERKNSt6stringERKNSt6stringERKNSt6stringEiRKNSt10shared_ptrIN3Aws3STS9STSClientEEE">
<span id="_CPPv3N5arrow2fs9S3Options30ConfigureAssumeRoleCredentialsERKNSt6stringERKNSt6stringERKNSt6stringEiRKNSt10shared_ptrIN3Aws3STS9STSClientEEE"></span><span id="_CPPv2N5arrow2fs9S3Options30ConfigureAssumeRoleCredentialsERKNSt6stringERKNSt6stringERKNSt6stringEiRKNSt10shared_ptrIN3Aws3STS9STSClientEEE"></span><span id="arrow::fs::S3Options::ConfigureAssumeRoleCredentials__ssCR.ssCR.ssCR.i.std::shared_ptr:Aws::STS::STSClient:CR"></span><span class="target" id="structarrow_1_1fs_1_1_s3_options_1a17030963f692462a4d72dfeeaf5bd9e1"></span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ConfigureAssumeRoleCredentials</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">role_arn</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">session_name</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="s"><span class="pre">&quot;&quot;</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">external_id</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="s"><span class="pre">&quot;&quot;</span></span>, <span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">load_frequency</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="m"><span class="pre">900</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">Aws</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">STS</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">STSClient</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">stsClient</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">NULLPTR</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow2fs9S3Options30ConfigureAssumeRoleCredentialsERKNSt6stringERKNSt6stringERKNSt6stringEiRKNSt10shared_ptrIN3Aws3STS9STSClientEEE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Configure with credentials from an assumed role. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs9S3Options45ConfigureAssumeRoleWithWebIdentityCredentialsEv">
<span id="_CPPv3N5arrow2fs9S3Options45ConfigureAssumeRoleWithWebIdentityCredentialsEv"></span><span id="_CPPv2N5arrow2fs9S3Options45ConfigureAssumeRoleWithWebIdentityCredentialsEv"></span><span id="arrow::fs::S3Options::ConfigureAssumeRoleWithWebIdentityCredentials"></span><span class="target" id="structarrow_1_1fs_1_1_s3_options_1aa88d5653b8af62b5f075183ce38199f0"></span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ConfigureAssumeRoleWithWebIdentityCredentials</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow2fs9S3Options45ConfigureAssumeRoleWithWebIdentityCredentialsEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Configure with credentials from role assumed using a web identity token. </p>
</dd></dl>
</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs9S3Options6regionE">
<span id="_CPPv3N5arrow2fs9S3Options6regionE"></span><span id="_CPPv2N5arrow2fs9S3Options6regionE"></span><span id="arrow::fs::S3Options::region__ss"></span><span class="target" id="structarrow_1_1fs_1_1_s3_options_1a49de2206208b9cecdeae88419ca48272"></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">region</span></span></span><a class="headerlink" href="#_CPPv4N5arrow2fs9S3Options6regionE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>AWS region to connect to. </p>
<p>If unset, the AWS SDK will choose a default value. The exact algorithm depends on the SDK version. Before 1.8, the default is hardcoded to “us-east-1”. Since 1.8, several heuristics are used to determine the region (environment variables, configuration profile, EC2 metadata server). </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs9S3Options15connect_timeoutE">
<span id="_CPPv3N5arrow2fs9S3Options15connect_timeoutE"></span><span id="_CPPv2N5arrow2fs9S3Options15connect_timeoutE"></span><span id="arrow::fs::S3Options::connect_timeout__double"></span><span class="target" id="structarrow_1_1fs_1_1_s3_options_1adc3786e0bf36d7e13f86a44b5faf1817"></span><span class="kt"><span class="pre">double</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">connect_timeout</span></span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="o"><span class="pre">-</span></span><span class="m"><span class="pre">1</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs9S3Options15connect_timeoutE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Socket connection timeout, in seconds. </p>
<p>If negative, the AWS SDK default value is used (typically 1 second). </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs9S3Options15request_timeoutE">
<span id="_CPPv3N5arrow2fs9S3Options15request_timeoutE"></span><span id="_CPPv2N5arrow2fs9S3Options15request_timeoutE"></span><span id="arrow::fs::S3Options::request_timeout__double"></span><span class="target" id="structarrow_1_1fs_1_1_s3_options_1adcc28ccc78260764d1fe7049346be2bd"></span><span class="kt"><span class="pre">double</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">request_timeout</span></span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="o"><span class="pre">-</span></span><span class="m"><span class="pre">1</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs9S3Options15request_timeoutE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Socket read timeout on Windows and macOS, in seconds. </p>
<p>If negative, the AWS SDK default value is used (typically 3 seconds). This option is ignored on non-Windows, non-macOS systems. </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs9S3Options17endpoint_overrideE">
<span id="_CPPv3N5arrow2fs9S3Options17endpoint_overrideE"></span><span id="_CPPv2N5arrow2fs9S3Options17endpoint_overrideE"></span><span id="arrow::fs::S3Options::endpoint_override__ss"></span><span class="target" id="structarrow_1_1fs_1_1_s3_options_1af09fdf28a8c94f1f160256743b9b8e78"></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">endpoint_override</span></span></span><a class="headerlink" href="#_CPPv4N5arrow2fs9S3Options17endpoint_overrideE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>If non-empty, override region with a connect string such as “localhost:9000”. </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs9S3Options6schemeE">
<span id="_CPPv3N5arrow2fs9S3Options6schemeE"></span><span id="_CPPv2N5arrow2fs9S3Options6schemeE"></span><span id="arrow::fs::S3Options::scheme__ss"></span><span class="target" id="structarrow_1_1fs_1_1_s3_options_1a9e70452c5f524e3f55710a5e5b839c58"></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">scheme</span></span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="s"><span class="pre">&quot;https&quot;</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs9S3Options6schemeE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>S3 connection transport, default “https”. </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs9S3Options8role_arnE">
<span id="_CPPv3N5arrow2fs9S3Options8role_arnE"></span><span id="_CPPv2N5arrow2fs9S3Options8role_arnE"></span><span id="arrow::fs::S3Options::role_arn__ss"></span><span class="target" id="structarrow_1_1fs_1_1_s3_options_1a0eccd25fd25693a7a5c33446b17d1be6"></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">role_arn</span></span></span><a class="headerlink" href="#_CPPv4N5arrow2fs9S3Options8role_arnE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>ARN of role to assume. </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs9S3Options12session_nameE">
<span id="_CPPv3N5arrow2fs9S3Options12session_nameE"></span><span id="_CPPv2N5arrow2fs9S3Options12session_nameE"></span><span id="arrow::fs::S3Options::session_name__ss"></span><span class="target" id="structarrow_1_1fs_1_1_s3_options_1a84d739959b1cf80d4866f0694eabbd33"></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">session_name</span></span></span><a class="headerlink" href="#_CPPv4N5arrow2fs9S3Options12session_nameE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Optional identifier for an assumed role session. </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs9S3Options11external_idE">
<span id="_CPPv3N5arrow2fs9S3Options11external_idE"></span><span id="_CPPv2N5arrow2fs9S3Options11external_idE"></span><span id="arrow::fs::S3Options::external_id__ss"></span><span class="target" id="structarrow_1_1fs_1_1_s3_options_1a815271cfa0d1204efbc0753dc8d27ac4"></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">external_id</span></span></span><a class="headerlink" href="#_CPPv4N5arrow2fs9S3Options11external_idE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Optional external identifier to pass to STS when assuming a role. </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs9S3Options14load_frequencyE">
<span id="_CPPv3N5arrow2fs9S3Options14load_frequencyE"></span><span id="_CPPv2N5arrow2fs9S3Options14load_frequencyE"></span><span id="arrow::fs::S3Options::load_frequency__i"></span><span class="target" id="structarrow_1_1fs_1_1_s3_options_1afb4bb536d7fe982279ac8ab3687e3e1d"></span><span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">load_frequency</span></span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="m"><span class="pre">900</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs9S3Options14load_frequencyE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Frequency (in seconds) to refresh temporary credentials from assumed role. </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs9S3Options13proxy_optionsE">
<span id="_CPPv3N5arrow2fs9S3Options13proxy_optionsE"></span><span id="_CPPv2N5arrow2fs9S3Options13proxy_optionsE"></span><span id="arrow::fs::S3Options::proxy_options__S3ProxyOptions"></span><span class="target" id="structarrow_1_1fs_1_1_s3_options_1a0114641b69b50a8153eadd260f506746"></span><span class="n"><span class="pre">S3ProxyOptions</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">proxy_options</span></span></span><a class="headerlink" href="#_CPPv4N5arrow2fs9S3Options13proxy_optionsE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>If connection is through a proxy, set options here. </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs9S3Options20credentials_providerE">
<span id="_CPPv3N5arrow2fs9S3Options20credentials_providerE"></span><span id="_CPPv2N5arrow2fs9S3Options20credentials_providerE"></span><span id="arrow::fs::S3Options::credentials_provider__std::shared_ptr:Aws::Auth::AWSCredentialsProvider:"></span><span class="target" id="structarrow_1_1fs_1_1_s3_options_1aa271fb7d2d253ed48ad88cf601a9f1cb"></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">Aws</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">Auth</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">AWSCredentialsProvider</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">credentials_provider</span></span></span><a class="headerlink" href="#_CPPv4N5arrow2fs9S3Options20credentials_providerE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>AWS credentials provider. </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs9S3Options16credentials_kindE">
<span id="_CPPv3N5arrow2fs9S3Options16credentials_kindE"></span><span id="_CPPv2N5arrow2fs9S3Options16credentials_kindE"></span><span id="arrow::fs::S3Options::credentials_kind__S3CredentialsKind"></span><span class="target" id="structarrow_1_1fs_1_1_s3_options_1ae737f040d34005402025844b4b905e70"></span><span class="n"><span class="pre">S3CredentialsKind</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">credentials_kind</span></span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">S3CredentialsKind</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">Default</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs9S3Options16credentials_kindE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Type of credentials being used. Set along with credentials_provider. </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs9S3Options24force_virtual_addressingE">
<span id="_CPPv3N5arrow2fs9S3Options24force_virtual_addressingE"></span><span id="_CPPv2N5arrow2fs9S3Options24force_virtual_addressingE"></span><span id="arrow::fs::S3Options::force_virtual_addressing__b"></span><span class="target" id="structarrow_1_1fs_1_1_s3_options_1a5fdc7ecfa3009a48747f5e319c97fad6"></span><span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">force_virtual_addressing</span></span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="k"><span class="pre">false</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs9S3Options24force_virtual_addressingE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Whether to use virtual addressing of buckets. </p>
<p>If true, then virtual addressing is always enabled. If false, then virtual addressing is only enabled if <code class="docutils literal notranslate"><span class="pre">endpoint_override</span></code> is empty.</p>
<p>This can be used for non-AWS backends that only support virtual hosted-style access. </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs9S3Options17background_writesE">
<span id="_CPPv3N5arrow2fs9S3Options17background_writesE"></span><span id="_CPPv2N5arrow2fs9S3Options17background_writesE"></span><span id="arrow::fs::S3Options::background_writes__b"></span><span class="target" id="structarrow_1_1fs_1_1_s3_options_1a6ea875c0f46c26e82b68211042d2b7b8"></span><span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">background_writes</span></span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="k"><span class="pre">true</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs9S3Options17background_writesE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Whether OutputStream writes will be issued in the background, without blocking. </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs9S3Options21allow_bucket_creationE">
<span id="_CPPv3N5arrow2fs9S3Options21allow_bucket_creationE"></span><span id="_CPPv2N5arrow2fs9S3Options21allow_bucket_creationE"></span><span id="arrow::fs::S3Options::allow_bucket_creation__b"></span><span class="target" id="structarrow_1_1fs_1_1_s3_options_1aa2a1c08bbc490a1dc91151bef42dd46d"></span><span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">allow_bucket_creation</span></span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="k"><span class="pre">false</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs9S3Options21allow_bucket_creationE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Whether to allow creation of buckets. </p>
<p>When <a class="reference internal" href="#classarrow_1_1fs_1_1_s3_file_system"><span class="std std-ref">S3FileSystem</span></a> creates new buckets, it does not pass any non-default settings. In AWS S3, the bucket and all objects will be not publicly visible, and there will be no bucket policies and no resource tags. To have more control over how buckets are created, use a different API to create them. </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs9S3Options21allow_bucket_deletionE">
<span id="_CPPv3N5arrow2fs9S3Options21allow_bucket_deletionE"></span><span id="_CPPv2N5arrow2fs9S3Options21allow_bucket_deletionE"></span><span id="arrow::fs::S3Options::allow_bucket_deletion__b"></span><span class="target" id="structarrow_1_1fs_1_1_s3_options_1afc14b3123bc76f1886d8e4203e15c4bd"></span><span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">allow_bucket_deletion</span></span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="k"><span class="pre">false</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs9S3Options21allow_bucket_deletionE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Whether to allow deletion of buckets. </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs9S3Options16default_metadataE">
<span id="_CPPv3N5arrow2fs9S3Options16default_metadataE"></span><span id="_CPPv2N5arrow2fs9S3Options16default_metadataE"></span><span id="arrow::fs::S3Options::default_metadata__std::shared_ptr:KeyValueMetadataC:"></span><span class="target" id="structarrow_1_1fs_1_1_s3_options_1a4211852102060ad70c5357f1f311c87c"></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="datatype.html#_CPPv4N5arrow16KeyValueMetadataE" title="arrow::KeyValueMetadata"><span class="n"><span class="pre">KeyValueMetadata</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">default_metadata</span></span></span><a class="headerlink" href="#_CPPv4N5arrow2fs9S3Options16default_metadataE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Default metadata for OpenOutputStream. </p>
<p>This will be ignored if non-empty metadata is passed to OpenOutputStream. </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs9S3Options14retry_strategyE">
<span id="_CPPv3N5arrow2fs9S3Options14retry_strategyE"></span><span id="_CPPv2N5arrow2fs9S3Options14retry_strategyE"></span><span id="arrow::fs::S3Options::retry_strategy__std::shared_ptr:S3RetryStrategy:"></span><span class="target" id="structarrow_1_1fs_1_1_s3_options_1a2963744962e6e3640100cbc83182ef8e"></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">S3RetryStrategy</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">retry_strategy</span></span></span><a class="headerlink" href="#_CPPv4N5arrow2fs9S3Options14retry_strategyE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Optional retry strategy to determine which error types should be retried, and the delay between retries. </p>
</dd></dl>
</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-static-functions">Public Static Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs9S3Options8DefaultsEv">
<span id="_CPPv3N5arrow2fs9S3Options8DefaultsEv"></span><span id="_CPPv2N5arrow2fs9S3Options8DefaultsEv"></span><span id="arrow::fs::S3Options::Defaults"></span><span class="target" id="structarrow_1_1fs_1_1_s3_options_1a8682834dd9717a0ce97b27a836c6f287"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow2fs9S3OptionsE" title="arrow::fs::S3Options"><span class="n"><span class="pre">S3Options</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Defaults</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow2fs9S3Options8DefaultsEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Initialize with default credentials provider chain. </p>
<p>This is recommended if you use the standard AWS environment variables and/or configuration file. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs9S3Options9AnonymousEv">
<span id="_CPPv3N5arrow2fs9S3Options9AnonymousEv"></span><span id="_CPPv2N5arrow2fs9S3Options9AnonymousEv"></span><span id="arrow::fs::S3Options::Anonymous"></span><span class="target" id="structarrow_1_1fs_1_1_s3_options_1a1b18b77ff602f9fb0120d611d75aa97e"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow2fs9S3OptionsE" title="arrow::fs::S3Options"><span class="n"><span class="pre">S3Options</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Anonymous</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow2fs9S3Options9AnonymousEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Initialize with anonymous credentials. </p>
<p>This will only let you access public buckets. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs9S3Options13FromAccessKeyERKNSt6stringERKNSt6stringERKNSt6stringE">
<span id="_CPPv3N5arrow2fs9S3Options13FromAccessKeyERKNSt6stringERKNSt6stringERKNSt6stringE"></span><span id="_CPPv2N5arrow2fs9S3Options13FromAccessKeyERKNSt6stringERKNSt6stringERKNSt6stringE"></span><span id="arrow::fs::S3Options::FromAccessKey__ssCR.ssCR.ssCR"></span><span class="target" id="structarrow_1_1fs_1_1_s3_options_1aefc7b40ad05ad325da173cfcb393ca1f"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow2fs9S3OptionsE" title="arrow::fs::S3Options"><span class="n"><span class="pre">S3Options</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">FromAccessKey</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">access_key</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">secret_key</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">session_token</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="s"><span class="pre">&quot;&quot;</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow2fs9S3Options13FromAccessKeyERKNSt6stringERKNSt6stringERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Initialize with explicit access and secret key. </p>
<p>Optionally, a session token may also be provided for temporary credentials (from STS). </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs9S3Options14FromAssumeRoleERKNSt6stringERKNSt6stringERKNSt6stringEiRKNSt10shared_ptrIN3Aws3STS9STSClientEEE">
<span id="_CPPv3N5arrow2fs9S3Options14FromAssumeRoleERKNSt6stringERKNSt6stringERKNSt6stringEiRKNSt10shared_ptrIN3Aws3STS9STSClientEEE"></span><span id="_CPPv2N5arrow2fs9S3Options14FromAssumeRoleERKNSt6stringERKNSt6stringERKNSt6stringEiRKNSt10shared_ptrIN3Aws3STS9STSClientEEE"></span><span id="arrow::fs::S3Options::FromAssumeRole__ssCR.ssCR.ssCR.i.std::shared_ptr:Aws::STS::STSClient:CR"></span><span class="target" id="structarrow_1_1fs_1_1_s3_options_1a3dead062e636a20d40bf93a105980e86"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow2fs9S3OptionsE" title="arrow::fs::S3Options"><span class="n"><span class="pre">S3Options</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">FromAssumeRole</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">role_arn</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">session_name</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="s"><span class="pre">&quot;&quot;</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">external_id</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="s"><span class="pre">&quot;&quot;</span></span>, <span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">load_frequency</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="m"><span class="pre">900</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">Aws</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">STS</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">STSClient</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">stsClient</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">NULLPTR</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow2fs9S3Options14FromAssumeRoleERKNSt6stringERKNSt6stringERKNSt6stringEiRKNSt10shared_ptrIN3Aws3STS9STSClientEEE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Initialize from an assumed role. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs9S3Options29FromAssumeRoleWithWebIdentityEv">
<span id="_CPPv3N5arrow2fs9S3Options29FromAssumeRoleWithWebIdentityEv"></span><span id="_CPPv2N5arrow2fs9S3Options29FromAssumeRoleWithWebIdentityEv"></span><span id="arrow::fs::S3Options::FromAssumeRoleWithWebIdentity"></span><span class="target" id="structarrow_1_1fs_1_1_s3_options_1a429134a2cf4a5b656ae50b2ee5b47a21"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow2fs9S3OptionsE" title="arrow::fs::S3Options"><span class="n"><span class="pre">S3Options</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">FromAssumeRoleWithWebIdentity</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow2fs9S3Options29FromAssumeRoleWithWebIdentityEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Initialize from an assumed role with web-identity. </p>
<p>Uses the AWS SDK which uses environment variables to generate temporary credentials. </p>
</dd></dl>
</div>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs12S3FileSystemE">
<span id="_CPPv3N5arrow2fs12S3FileSystemE"></span><span id="_CPPv2N5arrow2fs12S3FileSystemE"></span><span id="arrow::fs::S3FileSystem"></span><span class="target" id="classarrow_1_1fs_1_1_s3_file_system"></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">S3FileSystem</span></span></span><span class="w"> </span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="k"><span class="pre">public</span></span><span class="w"> </span><span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">fs</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="#_CPPv4N5arrow2fs10FileSystemE" title="arrow::fs::FileSystem"><span class="n"><span class="pre">FileSystem</span></span></a><a class="headerlink" href="#_CPPv4N5arrow2fs12S3FileSystemE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>S3-backed <a class="reference internal" href="#classarrow_1_1fs_1_1_file_system"><span class="std std-ref">FileSystem</span></a> implementation. </p>
<p>Some implementation notes:<ul class="simple">
<li><p>buckets are special and the operations available on them may be limited or more expensive than desired. </p></li>
</ul>
</p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-functions">Public Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow2fs12S3FileSystem7optionsEv">
<span id="_CPPv3NK5arrow2fs12S3FileSystem7optionsEv"></span><span id="_CPPv2NK5arrow2fs12S3FileSystem7optionsEv"></span><span id="arrow::fs::S3FileSystem::optionsC"></span><span class="target" id="classarrow_1_1fs_1_1_s3_file_system_1aceb06e56c6b321d334505eb49b101ccb"></span><a class="reference internal" href="#_CPPv4N5arrow2fs9S3OptionsE" title="arrow::fs::S3Options"><span class="n"><span class="pre">S3Options</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">options</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><a class="headerlink" href="#_CPPv4NK5arrow2fs12S3FileSystem7optionsEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Return the original S3 options when constructing the filesystem. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow2fs12S3FileSystem6regionEv">
<span id="_CPPv3NK5arrow2fs12S3FileSystem6regionEv"></span><span id="_CPPv2NK5arrow2fs12S3FileSystem6regionEv"></span><span id="arrow::fs::S3FileSystem::regionC"></span><span class="target" id="classarrow_1_1fs_1_1_s3_file_system_1a4c7e893c042a17d8ce453da006c1f986"></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">region</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><a class="headerlink" href="#_CPPv4NK5arrow2fs12S3FileSystem6regionEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Return the actual region this filesystem connects to. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow2fs12S3FileSystem11PathFromUriERKNSt6stringE">
<span id="_CPPv3NK5arrow2fs12S3FileSystem11PathFromUriERKNSt6stringE"></span><span id="_CPPv2NK5arrow2fs12S3FileSystem11PathFromUriERKNSt6stringE"></span><span id="arrow::fs::S3FileSystem::PathFromUri__ssCRC"></span><span class="target" id="classarrow_1_1fs_1_1_s3_file_system_1a10ab23e337391ddd937cb52eb8043fc1"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">PathFromUri</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">uri_string</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4NK5arrow2fs12S3FileSystem11PathFromUriERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Ensure a URI (or path) is compatible with the given filesystem and return the path. </p>
<p>
This method will check to ensure the given filesystem is compatible with the URI. This can be useful when the user provides both a URI and a filesystem or when a user provides multiple URIs that should be compatible with the same filesystem.</p>
<p>uri_string can be an absolute path instead of a URI. In that case it will ensure the filesystem (if supplied) is the local filesystem (or some custom filesystem that is capable of reading local paths) and will normalize the path’s file separators.</p>
<p>Note, this method only checks to ensure the URI scheme is valid. It will not detect inconsistencies like a mismatching region or endpoint override.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>uri_string</strong> – A URI representing a resource in the given filesystem.</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>The path inside the filesystem that is indicated by the URI. </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs12S3FileSystem11GetFileInfoERKNSt6stringE">
<span id="_CPPv3N5arrow2fs12S3FileSystem11GetFileInfoERKNSt6stringE"></span><span id="_CPPv2N5arrow2fs12S3FileSystem11GetFileInfoERKNSt6stringE"></span><span id="arrow::fs::S3FileSystem::GetFileInfo__ssCR"></span><span class="target" id="classarrow_1_1fs_1_1_s3_file_system_1accc79bb6781e8ec8b8b4a4c01d7dfb0c"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow2fs8FileInfoE" title="arrow::fs::FileInfo"><span class="n"><span class="pre">FileInfo</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">GetFileInfo</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs12S3FileSystem11GetFileInfoERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Get info for the given target. </p>
<p>Any symlink is automatically dereferenced, recursively. A nonexistent or unreachable file returns an Ok status and has a FileType of value NotFound. An error status indicates a truly exceptional condition (low-level I/O error, etc.). </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs12S3FileSystem11GetFileInfoERK12FileSelector">
<span id="_CPPv3N5arrow2fs12S3FileSystem11GetFileInfoERK12FileSelector"></span><span id="_CPPv2N5arrow2fs12S3FileSystem11GetFileInfoERK12FileSelector"></span><span id="arrow::fs::S3FileSystem::GetFileInfo__FileSelectorCR"></span><span class="target" id="classarrow_1_1fs_1_1_s3_file_system_1a8290eb500c8e74db7d16a0623875ef01"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">vector</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow2fs8FileInfoE" title="arrow::fs::FileInfo"><span class="n"><span class="pre">FileInfo</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">GetFileInfo</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow2fs12FileSelectorE" title="arrow::fs::FileSelector"><span class="n"><span class="pre">FileSelector</span></span></a><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">select</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs12S3FileSystem11GetFileInfoERK12FileSelector" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Same, according to a selector. </p>
<p>The selector’s base directory will not be part of the results, even if it exists. If it doesn’t exist, see <code class="docutils literal notranslate"><a class="reference internal" href="#structarrow_1_1fs_1_1_file_selector_1aead1e24f5aa8bb7a3e893436cde83ea7"><span class="std std-ref"><span class="pre">FileSelector::allow_not_found</span></span></a></code>. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs12S3FileSystem20GetFileInfoGeneratorERK12FileSelector">
<span id="_CPPv3N5arrow2fs12S3FileSystem20GetFileInfoGeneratorERK12FileSelector"></span><span id="_CPPv2N5arrow2fs12S3FileSystem20GetFileInfoGeneratorERK12FileSelector"></span><span id="arrow::fs::S3FileSystem::GetFileInfoGenerator__FileSelectorCR"></span><span class="target" id="classarrow_1_1fs_1_1_s3_file_system_1a6280201e3b46cee13103000b5ec0f421"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><span class="n"><span class="pre">FileInfoGenerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">GetFileInfoGenerator</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow2fs12FileSelectorE" title="arrow::fs::FileSelector"><span class="n"><span class="pre">FileSelector</span></span></a><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">select</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs12S3FileSystem20GetFileInfoGeneratorERK12FileSelector" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Streaming async version of GetFileInfo. </p>
<p>The returned generator is not async-reentrant, i.e. you need to wait for the returned future to complete before calling the generator again. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs12S3FileSystem9CreateDirERKNSt6stringEb">
<span id="_CPPv3N5arrow2fs12S3FileSystem9CreateDirERKNSt6stringEb"></span><span id="_CPPv2N5arrow2fs12S3FileSystem9CreateDirERKNSt6stringEb"></span><span id="arrow::fs::S3FileSystem::CreateDir__ssCR.b"></span><span class="target" id="classarrow_1_1fs_1_1_s3_file_system_1a89552a3ce9e00644714c2420702a163f"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">CreateDir</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span>, <span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">recursive</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs12S3FileSystem9CreateDirERKNSt6stringEb" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Create a directory and subdirectories. </p>
<p>This function succeeds if the directory already exists. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs12S3FileSystem9DeleteDirERKNSt6stringE">
<span id="_CPPv3N5arrow2fs12S3FileSystem9DeleteDirERKNSt6stringE"></span><span id="_CPPv2N5arrow2fs12S3FileSystem9DeleteDirERKNSt6stringE"></span><span id="arrow::fs::S3FileSystem::DeleteDir__ssCR"></span><span class="target" id="classarrow_1_1fs_1_1_s3_file_system_1a2b2469fdcb68f5d04c0121605dc485d9"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">DeleteDir</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs12S3FileSystem9DeleteDirERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Delete a directory and its contents, recursively. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs12S3FileSystem17DeleteDirContentsERKNSt6stringEb">
<span id="_CPPv3N5arrow2fs12S3FileSystem17DeleteDirContentsERKNSt6stringEb"></span><span id="_CPPv2N5arrow2fs12S3FileSystem17DeleteDirContentsERKNSt6stringEb"></span><span id="arrow::fs::S3FileSystem::DeleteDirContents__ssCR.b"></span><span class="target" id="classarrow_1_1fs_1_1_s3_file_system_1a6bf2dc55f06057b3297d29756cfe7dc9"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">DeleteDirContents</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span>, <span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">missing_dir_ok</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs12S3FileSystem17DeleteDirContentsERKNSt6stringEb" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Delete a directory’s contents, recursively. </p>
<p>Like DeleteDir, but doesn’t delete the directory itself. Passing an empty path (”” or “/”) is disallowed, see DeleteRootDirContents. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs12S3FileSystem22DeleteDirContentsAsyncERKNSt6stringEb">
<span id="_CPPv3N5arrow2fs12S3FileSystem22DeleteDirContentsAsyncERKNSt6stringEb"></span><span id="_CPPv2N5arrow2fs12S3FileSystem22DeleteDirContentsAsyncERKNSt6stringEb"></span><span id="arrow::fs::S3FileSystem::DeleteDirContentsAsync__ssCR.b"></span><span class="target" id="classarrow_1_1fs_1_1_s3_file_system_1a699a0a67ecec445a6aa8d46bdfed46b4"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="async.html#_CPPv4I0EN5arrow6FutureE" title="arrow::Future"><span class="n"><span class="pre">Future</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">DeleteDirContentsAsync</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span>, <span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">missing_dir_ok</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs12S3FileSystem22DeleteDirContentsAsyncERKNSt6stringEb" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Async version of DeleteDirContents. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs12S3FileSystem21DeleteRootDirContentsEv">
<span id="_CPPv3N5arrow2fs12S3FileSystem21DeleteRootDirContentsEv"></span><span id="_CPPv2N5arrow2fs12S3FileSystem21DeleteRootDirContentsEv"></span><span id="arrow::fs::S3FileSystem::DeleteRootDirContents"></span><span class="target" id="classarrow_1_1fs_1_1_s3_file_system_1aa53d71b0e752d58ba24f38e393ccee91"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">DeleteRootDirContents</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs12S3FileSystem21DeleteRootDirContentsEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>EXPERIMENTAL: Delete the root directory’s contents, recursively. </p>
<p>Implementations may decide to raise an error if this operation is too dangerous. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs12S3FileSystem10DeleteFileERKNSt6stringE">
<span id="_CPPv3N5arrow2fs12S3FileSystem10DeleteFileERKNSt6stringE"></span><span id="_CPPv2N5arrow2fs12S3FileSystem10DeleteFileERKNSt6stringE"></span><span id="arrow::fs::S3FileSystem::DeleteFile__ssCR"></span><span class="target" id="classarrow_1_1fs_1_1_s3_file_system_1ae9ca4e0ba31387e8a806e627d1eef32b"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">DeleteFile</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs12S3FileSystem10DeleteFileERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Delete a file. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs12S3FileSystem4MoveERKNSt6stringERKNSt6stringE">
<span id="_CPPv3N5arrow2fs12S3FileSystem4MoveERKNSt6stringERKNSt6stringE"></span><span id="_CPPv2N5arrow2fs12S3FileSystem4MoveERKNSt6stringERKNSt6stringE"></span><span id="arrow::fs::S3FileSystem::Move__ssCR.ssCR"></span><span class="target" id="classarrow_1_1fs_1_1_s3_file_system_1a356897ccaf9112c20539f37dea0fe8a5"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Move</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">src</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">dest</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs12S3FileSystem4MoveERKNSt6stringERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Move / rename a file or directory. </p>
<p>If the destination exists:<ul class="simple">
<li><p>if it is a non-empty directory, an error is returned</p></li>
<li><p>otherwise, if it has the same type as the source, it is replaced</p></li>
<li><p>otherwise, behavior is unspecified (implementation-dependent). </p></li>
</ul>
</p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs12S3FileSystem8CopyFileERKNSt6stringERKNSt6stringE">
<span id="_CPPv3N5arrow2fs12S3FileSystem8CopyFileERKNSt6stringERKNSt6stringE"></span><span id="_CPPv2N5arrow2fs12S3FileSystem8CopyFileERKNSt6stringERKNSt6stringE"></span><span id="arrow::fs::S3FileSystem::CopyFile__ssCR.ssCR"></span><span class="target" id="classarrow_1_1fs_1_1_s3_file_system_1a3cafd61714b93cbb1a32ae29be2b5f3f"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">CopyFile</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">src</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">dest</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs12S3FileSystem8CopyFileERKNSt6stringERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Copy a file. </p>
<p>If the destination exists and is a directory, an error is returned. Otherwise, it is replaced. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs12S3FileSystem15OpenInputStreamERKNSt6stringE">
<span id="_CPPv3N5arrow2fs12S3FileSystem15OpenInputStreamERKNSt6stringE"></span><span id="_CPPv2N5arrow2fs12S3FileSystem15OpenInputStreamERKNSt6stringE"></span><span id="arrow::fs::S3FileSystem::OpenInputStream__ssCR"></span><span class="target" id="classarrow_1_1fs_1_1_s3_file_system_1a741106f97cea2c11ea908da345482990"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="io.html#_CPPv4N5arrow2io11InputStreamE" title="arrow::io::InputStream"><span class="n"><span class="pre">InputStream</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">OpenInputStream</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs12S3FileSystem15OpenInputStreamERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Create a sequential input stream for reading from a S3 object. </p>
<p>NOTE: Reads from the stream will be synchronous and unbuffered. You way want to wrap the stream in a BufferedInputStream or use a custom readahead strategy to avoid idle waits. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs12S3FileSystem15OpenInputStreamERK8FileInfo">
<span id="_CPPv3N5arrow2fs12S3FileSystem15OpenInputStreamERK8FileInfo"></span><span id="_CPPv2N5arrow2fs12S3FileSystem15OpenInputStreamERK8FileInfo"></span><span id="arrow::fs::S3FileSystem::OpenInputStream__FileInfoCR"></span><span class="target" id="classarrow_1_1fs_1_1_s3_file_system_1a2e3889d4bceb2c105cae74f4e6f3210d"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="io.html#_CPPv4N5arrow2io11InputStreamE" title="arrow::io::InputStream"><span class="n"><span class="pre">InputStream</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">OpenInputStream</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow2fs8FileInfoE" title="arrow::fs::FileInfo"><span class="n"><span class="pre">FileInfo</span></span></a><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">info</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs12S3FileSystem15OpenInputStreamERK8FileInfo" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Create a sequential input stream for reading from a S3 object. </p>
<p>This override avoids a HEAD request by assuming the <a class="reference internal" href="#structarrow_1_1fs_1_1_file_info"><span class="std std-ref">FileInfo</span></a> contains correct information. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs12S3FileSystem13OpenInputFileERKNSt6stringE">
<span id="_CPPv3N5arrow2fs12S3FileSystem13OpenInputFileERKNSt6stringE"></span><span id="_CPPv2N5arrow2fs12S3FileSystem13OpenInputFileERKNSt6stringE"></span><span id="arrow::fs::S3FileSystem::OpenInputFile__ssCR"></span><span class="target" id="classarrow_1_1fs_1_1_s3_file_system_1a37b3809525d4529f62d629dc4d24e12b"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="io.html#_CPPv4N5arrow2io16RandomAccessFileE" title="arrow::io::RandomAccessFile"><span class="n"><span class="pre">RandomAccessFile</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">OpenInputFile</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs12S3FileSystem13OpenInputFileERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Create a random access file for reading from a S3 object. </p>
<p>See OpenInputStream for performance notes. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs12S3FileSystem13OpenInputFileERK8FileInfo">
<span id="_CPPv3N5arrow2fs12S3FileSystem13OpenInputFileERK8FileInfo"></span><span id="_CPPv2N5arrow2fs12S3FileSystem13OpenInputFileERK8FileInfo"></span><span id="arrow::fs::S3FileSystem::OpenInputFile__FileInfoCR"></span><span class="target" id="classarrow_1_1fs_1_1_s3_file_system_1a1b7dd4fa3c051d776268b6379a7de035"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="io.html#_CPPv4N5arrow2io16RandomAccessFileE" title="arrow::io::RandomAccessFile"><span class="n"><span class="pre">RandomAccessFile</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">OpenInputFile</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow2fs8FileInfoE" title="arrow::fs::FileInfo"><span class="n"><span class="pre">FileInfo</span></span></a><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">info</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs12S3FileSystem13OpenInputFileERK8FileInfo" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Create a random access file for reading from a S3 object. </p>
<p>This override avoids a HEAD request by assuming the <a class="reference internal" href="#structarrow_1_1fs_1_1_file_info"><span class="std std-ref">FileInfo</span></a> contains correct information. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs12S3FileSystem16OpenOutputStreamERKNSt6stringERKNSt10shared_ptrIK16KeyValueMetadataEE">
<span id="_CPPv3N5arrow2fs12S3FileSystem16OpenOutputStreamERKNSt6stringERKNSt10shared_ptrIK16KeyValueMetadataEE"></span><span id="_CPPv2N5arrow2fs12S3FileSystem16OpenOutputStreamERKNSt6stringERKNSt10shared_ptrIK16KeyValueMetadataEE"></span><span id="arrow::fs::S3FileSystem::OpenOutputStream__ssCR.std::shared_ptr:KeyValueMetadataC:CR"></span><span class="target" id="classarrow_1_1fs_1_1_s3_file_system_1a98bdebbe04b3a1b820baea0764a07e62"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="io.html#_CPPv4N5arrow2io12OutputStreamE" title="arrow::io::OutputStream"><span class="n"><span class="pre">OutputStream</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">OpenOutputStream</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="datatype.html#_CPPv4N5arrow16KeyValueMetadataE" title="arrow::KeyValueMetadata"><span class="n"><span class="pre">KeyValueMetadata</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">metadata</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs12S3FileSystem16OpenOutputStreamERKNSt6stringERKNSt10shared_ptrIK16KeyValueMetadataEE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Create a sequential output stream for writing to a S3 object. </p>
<p>NOTE: Writes to the stream will be buffered. Depending on <a class="reference internal" href="#structarrow_1_1fs_1_1_s3_options_1a6ea875c0f46c26e82b68211042d2b7b8"><span class="std std-ref">S3Options.background_writes</span></a>, they can be synchronous or not. It is recommended to enable background_writes unless you prefer implementing your own background execution strategy. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs12S3FileSystem16OpenAppendStreamERKNSt6stringERKNSt10shared_ptrIK16KeyValueMetadataEE">
<span id="_CPPv3N5arrow2fs12S3FileSystem16OpenAppendStreamERKNSt6stringERKNSt10shared_ptrIK16KeyValueMetadataEE"></span><span id="_CPPv2N5arrow2fs12S3FileSystem16OpenAppendStreamERKNSt6stringERKNSt10shared_ptrIK16KeyValueMetadataEE"></span><span id="arrow::fs::S3FileSystem::OpenAppendStream__ssCR.std::shared_ptr:KeyValueMetadataC:CR"></span><span class="target" id="classarrow_1_1fs_1_1_s3_file_system_1ab6c1c5f24df6f659e8ce1ad915cdfac0"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="io.html#_CPPv4N5arrow2io12OutputStreamE" title="arrow::io::OutputStream"><span class="n"><span class="pre">OutputStream</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">OpenAppendStream</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="datatype.html#_CPPv4N5arrow16KeyValueMetadataE" title="arrow::KeyValueMetadata"><span class="n"><span class="pre">KeyValueMetadata</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">metadata</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs12S3FileSystem16OpenAppendStreamERKNSt6stringERKNSt10shared_ptrIK16KeyValueMetadataEE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Open an output stream for appending. </p>
<p>If the target doesn’t exist, a new empty file is created.</p>
<p>Note: some filesystem implementations do not support efficient appending to an existing file, in which case this method will return NotImplemented. Consider writing to multiple files (using e.g. the dataset layer) instead. </p>
</dd></dl>
</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-static-functions">Public Static Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs12S3FileSystem4MakeERK9S3OptionsRKN2io9IOContextE">
<span id="_CPPv3N5arrow2fs12S3FileSystem4MakeERK9S3OptionsRKN2io9IOContextE"></span><span id="_CPPv2N5arrow2fs12S3FileSystem4MakeERK9S3OptionsRKN2io9IOContextE"></span><span id="arrow::fs::S3FileSystem::Make__S3OptionsCR.io::IOContextCR"></span><span class="target" id="classarrow_1_1fs_1_1_s3_file_system_1ae8c65e9755e5d12c959916ebf27b8b15"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow2fs12S3FileSystemE" title="arrow::fs::S3FileSystem"><span class="n"><span class="pre">S3FileSystem</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Make</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow2fs9S3OptionsE" title="arrow::fs::S3Options"><span class="n"><span class="pre">S3Options</span></span></a><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">options</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">IOContext</span></span><span class="p"><span class="pre">&amp;</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">default_io_context</span></span><span class="p"><span class="pre">(</span></span><span class="p"><span class="pre">)</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow2fs12S3FileSystem4MakeERK9S3OptionsRKN2io9IOContextE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Create a <a class="reference internal" href="#classarrow_1_1fs_1_1_s3_file_system"><span class="std std-ref">S3FileSystem</span></a> instance from the given options. </p>
</dd></dl>
</div>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs12InitializeS3ERK15S3GlobalOptions">
<span id="_CPPv3N5arrow2fs12InitializeS3ERK15S3GlobalOptions"></span><span id="_CPPv2N5arrow2fs12InitializeS3ERK15S3GlobalOptions"></span><span id="arrow::fs::InitializeS3__S3GlobalOptionsCR"></span><span class="target" id="namespacearrow_1_1fs_1a0a5e20de5a89bdce21188370a16a6f6a"></span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-prename descclassname"><span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">fs</span></span><span class="p"><span class="pre">::</span></span></span><span class="sig-name descname"><span class="n"><span class="pre">InitializeS3</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">S3GlobalOptions</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">options</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow2fs12InitializeS3ERK15S3GlobalOptions" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Initialize the S3 APIs with the specified set of options. </p>
<p>It is required to call this function at least once before using <a class="reference internal" href="#classarrow_1_1fs_1_1_s3_file_system"><span class="std std-ref">S3FileSystem</span></a>.</p>
<p>Once this function is called you MUST call FinalizeS3 before the end of the application in order to avoid a segmentation fault at shutdown. </p>
</dd></dl>
</section>
<section id="hadoop-filesystem">
<h3>Hadoop filesystem<a class="headerlink" href="#hadoop-filesystem" title="Permalink to this heading">#</a></h3>
<dl class="cpp struct">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs11HdfsOptionsE">
<span id="_CPPv3N5arrow2fs11HdfsOptionsE"></span><span id="_CPPv2N5arrow2fs11HdfsOptionsE"></span><span id="arrow::fs::HdfsOptions"></span><span class="target" id="structarrow_1_1fs_1_1_hdfs_options"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">HdfsOptions</span></span></span><a class="headerlink" href="#_CPPv4N5arrow2fs11HdfsOptionsE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Options for the HDFS implementation. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs11HdfsOptions17connection_configE">
<span id="_CPPv3N5arrow2fs11HdfsOptions17connection_configE"></span><span id="_CPPv2N5arrow2fs11HdfsOptions17connection_configE"></span><span id="arrow::fs::HdfsOptions::connection_config__io::HdfsConnectionConfig"></span><span class="target" id="structarrow_1_1fs_1_1_hdfs_options_1a98146b010fd6936a918af58063146184"></span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">HdfsConnectionConfig</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">connection_config</span></span></span><a class="headerlink" href="#_CPPv4N5arrow2fs11HdfsOptions17connection_configE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Hdfs configuration options, contains host, port, driver. </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs11HdfsOptions11buffer_sizeE">
<span id="_CPPv3N5arrow2fs11HdfsOptions11buffer_sizeE"></span><span id="_CPPv2N5arrow2fs11HdfsOptions11buffer_sizeE"></span><span id="arrow::fs::HdfsOptions::buffer_size__int32_t"></span><span class="target" id="structarrow_1_1fs_1_1_hdfs_options_1ac22f9c79b0fb667cee5d53d348d396be"></span><span class="n"><span class="pre">int32_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">buffer_size</span></span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="m"><span class="pre">0</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs11HdfsOptions11buffer_sizeE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Used by Hdfs OpenWritable Interface. </p>
</dd></dl>
</div>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs16HadoopFileSystemE">
<span id="_CPPv3N5arrow2fs16HadoopFileSystemE"></span><span id="_CPPv2N5arrow2fs16HadoopFileSystemE"></span><span id="arrow::fs::HadoopFileSystem"></span><span class="target" id="classarrow_1_1fs_1_1_hadoop_file_system"></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">HadoopFileSystem</span></span></span><span class="w"> </span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="k"><span class="pre">public</span></span><span class="w"> </span><span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">fs</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="#_CPPv4N5arrow2fs10FileSystemE" title="arrow::fs::FileSystem"><span class="n"><span class="pre">FileSystem</span></span></a><a class="headerlink" href="#_CPPv4N5arrow2fs16HadoopFileSystemE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>HDFS-backed <a class="reference internal" href="#classarrow_1_1fs_1_1_file_system"><span class="std std-ref">FileSystem</span></a> implementation. </p>
<p>implementation notes:<ul class="simple">
<li><p>This is a wrapper of arrow/io/hdfs, so we can use <a class="reference internal" href="#classarrow_1_1fs_1_1_file_system"><span class="std std-ref">FileSystem</span></a> API to handle hdfs. </p></li>
</ul>
</p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-functions">Public Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow2fs16HadoopFileSystem11PathFromUriERKNSt6stringE">
<span id="_CPPv3NK5arrow2fs16HadoopFileSystem11PathFromUriERKNSt6stringE"></span><span id="_CPPv2NK5arrow2fs16HadoopFileSystem11PathFromUriERKNSt6stringE"></span><span id="arrow::fs::HadoopFileSystem::PathFromUri__ssCRC"></span><span class="target" id="classarrow_1_1fs_1_1_hadoop_file_system_1a424b0eb83db5beff1ac0e2d4fcf21c5a"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">PathFromUri</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">uri_string</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4NK5arrow2fs16HadoopFileSystem11PathFromUriERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Ensure a URI (or path) is compatible with the given filesystem and return the path. </p>
<p>
This method will check to ensure the given filesystem is compatible with the URI. This can be useful when the user provides both a URI and a filesystem or when a user provides multiple URIs that should be compatible with the same filesystem.</p>
<p>uri_string can be an absolute path instead of a URI. In that case it will ensure the filesystem (if supplied) is the local filesystem (or some custom filesystem that is capable of reading local paths) and will normalize the path’s file separators.</p>
<p>Note, this method only checks to ensure the URI scheme is valid. It will not detect inconsistencies like a mismatching region or endpoint override.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>uri_string</strong> – A URI representing a resource in the given filesystem.</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>The path inside the filesystem that is indicated by the URI. </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs16HadoopFileSystem11GetFileInfoERKNSt6stringE">
<span id="_CPPv3N5arrow2fs16HadoopFileSystem11GetFileInfoERKNSt6stringE"></span><span id="_CPPv2N5arrow2fs16HadoopFileSystem11GetFileInfoERKNSt6stringE"></span><span id="arrow::fs::HadoopFileSystem::GetFileInfo__ssCR"></span><span class="target" id="classarrow_1_1fs_1_1_hadoop_file_system_1a751760df9a2f2d62e7e4b5052c879c78"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow2fs8FileInfoE" title="arrow::fs::FileInfo"><span class="n"><span class="pre">FileInfo</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">GetFileInfo</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs16HadoopFileSystem11GetFileInfoERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Get info for the given target. </p>
<p>Any symlink is automatically dereferenced, recursively. A nonexistent or unreachable file returns an Ok status and has a FileType of value NotFound. An error status indicates a truly exceptional condition (low-level I/O error, etc.). </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs16HadoopFileSystem11GetFileInfoERK12FileSelector">
<span id="_CPPv3N5arrow2fs16HadoopFileSystem11GetFileInfoERK12FileSelector"></span><span id="_CPPv2N5arrow2fs16HadoopFileSystem11GetFileInfoERK12FileSelector"></span><span id="arrow::fs::HadoopFileSystem::GetFileInfo__FileSelectorCR"></span><span class="target" id="classarrow_1_1fs_1_1_hadoop_file_system_1a546e34a045eaa5cf111e2be742726f03"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">vector</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow2fs8FileInfoE" title="arrow::fs::FileInfo"><span class="n"><span class="pre">FileInfo</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">GetFileInfo</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow2fs12FileSelectorE" title="arrow::fs::FileSelector"><span class="n"><span class="pre">FileSelector</span></span></a><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">select</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs16HadoopFileSystem11GetFileInfoERK12FileSelector" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Same, according to a selector. </p>
<p>The selector’s base directory will not be part of the results, even if it exists. If it doesn’t exist, see <code class="docutils literal notranslate"><a class="reference internal" href="#structarrow_1_1fs_1_1_file_selector_1aead1e24f5aa8bb7a3e893436cde83ea7"><span class="std std-ref"><span class="pre">FileSelector::allow_not_found</span></span></a></code>. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs16HadoopFileSystem9CreateDirERKNSt6stringEb">
<span id="_CPPv3N5arrow2fs16HadoopFileSystem9CreateDirERKNSt6stringEb"></span><span id="_CPPv2N5arrow2fs16HadoopFileSystem9CreateDirERKNSt6stringEb"></span><span id="arrow::fs::HadoopFileSystem::CreateDir__ssCR.b"></span><span class="target" id="classarrow_1_1fs_1_1_hadoop_file_system_1a8294e89b21f0913dc0f24a924b6f6782"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">CreateDir</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span>, <span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">recursive</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs16HadoopFileSystem9CreateDirERKNSt6stringEb" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Create a directory and subdirectories. </p>
<p>This function succeeds if the directory already exists. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs16HadoopFileSystem9DeleteDirERKNSt6stringE">
<span id="_CPPv3N5arrow2fs16HadoopFileSystem9DeleteDirERKNSt6stringE"></span><span id="_CPPv2N5arrow2fs16HadoopFileSystem9DeleteDirERKNSt6stringE"></span><span id="arrow::fs::HadoopFileSystem::DeleteDir__ssCR"></span><span class="target" id="classarrow_1_1fs_1_1_hadoop_file_system_1a0e31c1cd8826eb7c6ba7fb2ae094104b"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">DeleteDir</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs16HadoopFileSystem9DeleteDirERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Delete a directory and its contents, recursively. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs16HadoopFileSystem17DeleteDirContentsERKNSt6stringEb">
<span id="_CPPv3N5arrow2fs16HadoopFileSystem17DeleteDirContentsERKNSt6stringEb"></span><span id="_CPPv2N5arrow2fs16HadoopFileSystem17DeleteDirContentsERKNSt6stringEb"></span><span id="arrow::fs::HadoopFileSystem::DeleteDirContents__ssCR.b"></span><span class="target" id="classarrow_1_1fs_1_1_hadoop_file_system_1a620ba57430315d622e081814b993a26a"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">DeleteDirContents</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span>, <span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">missing_dir_ok</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs16HadoopFileSystem17DeleteDirContentsERKNSt6stringEb" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Delete a directory’s contents, recursively. </p>
<p>Like DeleteDir, but doesn’t delete the directory itself. Passing an empty path (”” or “/”) is disallowed, see DeleteRootDirContents. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs16HadoopFileSystem21DeleteRootDirContentsEv">
<span id="_CPPv3N5arrow2fs16HadoopFileSystem21DeleteRootDirContentsEv"></span><span id="_CPPv2N5arrow2fs16HadoopFileSystem21DeleteRootDirContentsEv"></span><span id="arrow::fs::HadoopFileSystem::DeleteRootDirContents"></span><span class="target" id="classarrow_1_1fs_1_1_hadoop_file_system_1a7d52af00a32ca03bafa26856a581e11d"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">DeleteRootDirContents</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs16HadoopFileSystem21DeleteRootDirContentsEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>EXPERIMENTAL: Delete the root directory’s contents, recursively. </p>
<p>Implementations may decide to raise an error if this operation is too dangerous. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs16HadoopFileSystem10DeleteFileERKNSt6stringE">
<span id="_CPPv3N5arrow2fs16HadoopFileSystem10DeleteFileERKNSt6stringE"></span><span id="_CPPv2N5arrow2fs16HadoopFileSystem10DeleteFileERKNSt6stringE"></span><span id="arrow::fs::HadoopFileSystem::DeleteFile__ssCR"></span><span class="target" id="classarrow_1_1fs_1_1_hadoop_file_system_1a7b41afc1c5d4f6d01b753ddd5eec3dfc"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">DeleteFile</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs16HadoopFileSystem10DeleteFileERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Delete a file. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs16HadoopFileSystem4MoveERKNSt6stringERKNSt6stringE">
<span id="_CPPv3N5arrow2fs16HadoopFileSystem4MoveERKNSt6stringERKNSt6stringE"></span><span id="_CPPv2N5arrow2fs16HadoopFileSystem4MoveERKNSt6stringERKNSt6stringE"></span><span id="arrow::fs::HadoopFileSystem::Move__ssCR.ssCR"></span><span class="target" id="classarrow_1_1fs_1_1_hadoop_file_system_1a8da6de9a71ea147f43d2e7176f9db7c6"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Move</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">src</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">dest</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs16HadoopFileSystem4MoveERKNSt6stringERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Move / rename a file or directory. </p>
<p>If the destination exists:<ul class="simple">
<li><p>if it is a non-empty directory, an error is returned</p></li>
<li><p>otherwise, if it has the same type as the source, it is replaced</p></li>
<li><p>otherwise, behavior is unspecified (implementation-dependent). </p></li>
</ul>
</p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs16HadoopFileSystem8CopyFileERKNSt6stringERKNSt6stringE">
<span id="_CPPv3N5arrow2fs16HadoopFileSystem8CopyFileERKNSt6stringERKNSt6stringE"></span><span id="_CPPv2N5arrow2fs16HadoopFileSystem8CopyFileERKNSt6stringERKNSt6stringE"></span><span id="arrow::fs::HadoopFileSystem::CopyFile__ssCR.ssCR"></span><span class="target" id="classarrow_1_1fs_1_1_hadoop_file_system_1aabebe495dcbadd32eab6505e7ef271ff"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">CopyFile</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">src</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">dest</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs16HadoopFileSystem8CopyFileERKNSt6stringERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Copy a file. </p>
<p>If the destination exists and is a directory, an error is returned. Otherwise, it is replaced. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs16HadoopFileSystem15OpenInputStreamERKNSt6stringE">
<span id="_CPPv3N5arrow2fs16HadoopFileSystem15OpenInputStreamERKNSt6stringE"></span><span id="_CPPv2N5arrow2fs16HadoopFileSystem15OpenInputStreamERKNSt6stringE"></span><span id="arrow::fs::HadoopFileSystem::OpenInputStream__ssCR"></span><span class="target" id="classarrow_1_1fs_1_1_hadoop_file_system_1aa10340ef6270b0cca4c8ec0f0cfbb928"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="io.html#_CPPv4N5arrow2io11InputStreamE" title="arrow::io::InputStream"><span class="n"><span class="pre">InputStream</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">OpenInputStream</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs16HadoopFileSystem15OpenInputStreamERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Open an input stream for sequential reading. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs16HadoopFileSystem13OpenInputFileERKNSt6stringE">
<span id="_CPPv3N5arrow2fs16HadoopFileSystem13OpenInputFileERKNSt6stringE"></span><span id="_CPPv2N5arrow2fs16HadoopFileSystem13OpenInputFileERKNSt6stringE"></span><span id="arrow::fs::HadoopFileSystem::OpenInputFile__ssCR"></span><span class="target" id="classarrow_1_1fs_1_1_hadoop_file_system_1aaca8f88888705150aeee8c7b8eb14c41"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="io.html#_CPPv4N5arrow2io16RandomAccessFileE" title="arrow::io::RandomAccessFile"><span class="n"><span class="pre">RandomAccessFile</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">OpenInputFile</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs16HadoopFileSystem13OpenInputFileERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Open an input file for random access reading. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs16HadoopFileSystem16OpenOutputStreamERKNSt6stringERKNSt10shared_ptrIK16KeyValueMetadataEE">
<span id="_CPPv3N5arrow2fs16HadoopFileSystem16OpenOutputStreamERKNSt6stringERKNSt10shared_ptrIK16KeyValueMetadataEE"></span><span id="_CPPv2N5arrow2fs16HadoopFileSystem16OpenOutputStreamERKNSt6stringERKNSt10shared_ptrIK16KeyValueMetadataEE"></span><span id="arrow::fs::HadoopFileSystem::OpenOutputStream__ssCR.std::shared_ptr:KeyValueMetadataC:CR"></span><span class="target" id="classarrow_1_1fs_1_1_hadoop_file_system_1a8f4722d834e4136a69cc3ffedf761435"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="io.html#_CPPv4N5arrow2io12OutputStreamE" title="arrow::io::OutputStream"><span class="n"><span class="pre">OutputStream</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">OpenOutputStream</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="datatype.html#_CPPv4N5arrow16KeyValueMetadataE" title="arrow::KeyValueMetadata"><span class="n"><span class="pre">KeyValueMetadata</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">metadata</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs16HadoopFileSystem16OpenOutputStreamERKNSt6stringERKNSt10shared_ptrIK16KeyValueMetadataEE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Open an output stream for sequential writing. </p>
<p>If the target already exists, existing data is truncated. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs16HadoopFileSystem16OpenAppendStreamERKNSt6stringERKNSt10shared_ptrIK16KeyValueMetadataEE">
<span id="_CPPv3N5arrow2fs16HadoopFileSystem16OpenAppendStreamERKNSt6stringERKNSt10shared_ptrIK16KeyValueMetadataEE"></span><span id="_CPPv2N5arrow2fs16HadoopFileSystem16OpenAppendStreamERKNSt6stringERKNSt10shared_ptrIK16KeyValueMetadataEE"></span><span id="arrow::fs::HadoopFileSystem::OpenAppendStream__ssCR.std::shared_ptr:KeyValueMetadataC:CR"></span><span class="target" id="classarrow_1_1fs_1_1_hadoop_file_system_1a39de67e53e94b83ff321156f47de8d22"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="io.html#_CPPv4N5arrow2io12OutputStreamE" title="arrow::io::OutputStream"><span class="n"><span class="pre">OutputStream</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">OpenAppendStream</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="datatype.html#_CPPv4N5arrow16KeyValueMetadataE" title="arrow::KeyValueMetadata"><span class="n"><span class="pre">KeyValueMetadata</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">metadata</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs16HadoopFileSystem16OpenAppendStreamERKNSt6stringERKNSt10shared_ptrIK16KeyValueMetadataEE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Open an output stream for appending. </p>
<p>If the target doesn’t exist, a new empty file is created.</p>
<p>Note: some filesystem implementations do not support efficient appending to an existing file, in which case this method will return NotImplemented. Consider writing to multiple files (using e.g. the dataset layer) instead. </p>
</dd></dl>
</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-static-functions">Public Static Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs16HadoopFileSystem4MakeERK11HdfsOptionsRKN2io9IOContextE">
<span id="_CPPv3N5arrow2fs16HadoopFileSystem4MakeERK11HdfsOptionsRKN2io9IOContextE"></span><span id="_CPPv2N5arrow2fs16HadoopFileSystem4MakeERK11HdfsOptionsRKN2io9IOContextE"></span><span id="arrow::fs::HadoopFileSystem::Make__HdfsOptionsCR.io::IOContextCR"></span><span class="target" id="classarrow_1_1fs_1_1_hadoop_file_system_1a27cf1240f5c43289e9b1549c7039f6a7"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow2fs16HadoopFileSystemE" title="arrow::fs::HadoopFileSystem"><span class="n"><span class="pre">HadoopFileSystem</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Make</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow2fs11HdfsOptionsE" title="arrow::fs::HdfsOptions"><span class="n"><span class="pre">HdfsOptions</span></span></a><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">options</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">IOContext</span></span><span class="p"><span class="pre">&amp;</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">default_io_context</span></span><span class="p"><span class="pre">(</span></span><span class="p"><span class="pre">)</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow2fs16HadoopFileSystem4MakeERK11HdfsOptionsRKN2io9IOContextE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Create a HdfsFileSystem instance from the given options. </p>
</dd></dl>
</div>
</dd></dl>
</section>
<section id="google-cloud-storage-filesystem">
<h3>Google Cloud Storage filesystem<a class="headerlink" href="#google-cloud-storage-filesystem" title="Permalink to this heading">#</a></h3>
<dl class="cpp struct">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs10GcsOptionsE">
<span id="_CPPv3N5arrow2fs10GcsOptionsE"></span><span id="_CPPv2N5arrow2fs10GcsOptionsE"></span><span id="arrow::fs::GcsOptions"></span><span class="target" id="structarrow_1_1fs_1_1_gcs_options"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">GcsOptions</span></span></span><a class="headerlink" href="#_CPPv4N5arrow2fs10GcsOptionsE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Options for the <a class="reference internal" href="#classarrow_1_1fs_1_1_gcs_file_system"><span class="std std-ref">GcsFileSystem</span></a> implementation. </p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-functions">Public Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs10GcsOptions10GcsOptionsEv">
<span id="_CPPv3N5arrow2fs10GcsOptions10GcsOptionsEv"></span><span id="_CPPv2N5arrow2fs10GcsOptions10GcsOptionsEv"></span><span id="arrow::fs::GcsOptions::GcsOptions"></span><span class="target" id="structarrow_1_1fs_1_1_gcs_options_1a9ad2dba526874426d3ad4dda0d518213"></span><span class="sig-name descname"><span class="n"><span class="pre">GcsOptions</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow2fs10GcsOptions10GcsOptionsEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Equivalent to <a class="reference internal" href="#structarrow_1_1fs_1_1_gcs_options_1ad33bf97260581d9559d434fab72c4d16"><span class="std std-ref">GcsOptions::Defaults()</span></a>. </p>
</dd></dl>
</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs10GcsOptions23default_bucket_locationE">
<span id="_CPPv3N5arrow2fs10GcsOptions23default_bucket_locationE"></span><span id="_CPPv2N5arrow2fs10GcsOptions23default_bucket_locationE"></span><span id="arrow::fs::GcsOptions::default_bucket_location__ss"></span><span class="target" id="structarrow_1_1fs_1_1_gcs_options_1ab74ecc996646cc71188698dba91a59eb"></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">default_bucket_location</span></span></span><a class="headerlink" href="#_CPPv4N5arrow2fs10GcsOptions23default_bucket_locationE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Location to use for creating buckets. </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs10GcsOptions19retry_limit_secondsE">
<span id="_CPPv3N5arrow2fs10GcsOptions19retry_limit_secondsE"></span><span id="_CPPv2N5arrow2fs10GcsOptions19retry_limit_secondsE"></span><span id="arrow::fs::GcsOptions::retry_limit_seconds__std::optional:double:"></span><span class="target" id="structarrow_1_1fs_1_1_gcs_options_1a20c5b9de1dae1473a991a266b93612ac"></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">optional</span></span><span class="p"><span class="pre">&lt;</span></span><span class="kt"><span class="pre">double</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">retry_limit_seconds</span></span></span><a class="headerlink" href="#_CPPv4N5arrow2fs10GcsOptions19retry_limit_secondsE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>If set used to control total time allowed for retrying underlying errors. </p>
<p>The default policy is to retry for up to 15 minutes. </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs10GcsOptions16default_metadataE">
<span id="_CPPv3N5arrow2fs10GcsOptions16default_metadataE"></span><span id="_CPPv2N5arrow2fs10GcsOptions16default_metadataE"></span><span id="arrow::fs::GcsOptions::default_metadata__std::shared_ptr:KeyValueMetadataC:"></span><span class="target" id="structarrow_1_1fs_1_1_gcs_options_1ae9d6207a8d7a6f281189f9d4d9910d4a"></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="datatype.html#_CPPv4N5arrow16KeyValueMetadataE" title="arrow::KeyValueMetadata"><span class="n"><span class="pre">KeyValueMetadata</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">default_metadata</span></span></span><a class="headerlink" href="#_CPPv4N5arrow2fs10GcsOptions16default_metadataE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Default metadata for OpenOutputStream. </p>
<p>This will be ignored if non-empty metadata is passed to OpenOutputStream. </p>
</dd></dl>
<dl class="cpp var">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs10GcsOptions10project_idE">
<span id="_CPPv3N5arrow2fs10GcsOptions10project_idE"></span><span id="_CPPv2N5arrow2fs10GcsOptions10project_idE"></span><span id="arrow::fs::GcsOptions::project_id__std::optional:ss:"></span><span class="target" id="structarrow_1_1fs_1_1_gcs_options_1a9cf66dc6096a2eec6117e3e3f3d2dffb"></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">optional</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">project_id</span></span></span><a class="headerlink" href="#_CPPv4N5arrow2fs10GcsOptions10project_idE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>The project to use for creating buckets. </p>
<p>If not set, the library uses the GOOGLE_CLOUD_PROJECT environment variable. Most I/O operations do not need a project id, only applications that create new buckets need a project id. </p>
</dd></dl>
</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-static-functions">Public Static Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs10GcsOptions8DefaultsEv">
<span id="_CPPv3N5arrow2fs10GcsOptions8DefaultsEv"></span><span id="_CPPv2N5arrow2fs10GcsOptions8DefaultsEv"></span><span id="arrow::fs::GcsOptions::Defaults"></span><span class="target" id="structarrow_1_1fs_1_1_gcs_options_1ad33bf97260581d9559d434fab72c4d16"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow2fs10GcsOptionsE" title="arrow::fs::GcsOptions"><span class="n"><span class="pre">GcsOptions</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Defaults</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow2fs10GcsOptions8DefaultsEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Initialize with Google Default Credentials. </p>
<p>Create options configured to use <a class="reference external" href="https://google.aip.dev/auth/4110">Application Default Credentials</a>. The details of this mechanism are too involved to describe here, but suffice is to say that applications can override any defaults using an environment variable (<code class="docutils literal notranslate"><span class="pre">GOOGLE_APPLICATION_CREDENTIALS</span></code>), and that the defaults work with most Google Cloud Platform deployment environments (GCE, GKE, Cloud Run, etc.), and that have the same behavior as the <code class="docutils literal notranslate"><span class="pre">gcloud</span></code> CLI tool on your workstation.</p>
<p><div class="admonition seealso">
<p class="admonition-title">See also</p>
<p><a class="reference external" href="https://cloud.google.com/docs/authentication">https://cloud.google.com/docs/authentication</a></p>
</div>
</p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs10GcsOptions9AnonymousEv">
<span id="_CPPv3N5arrow2fs10GcsOptions9AnonymousEv"></span><span id="_CPPv2N5arrow2fs10GcsOptions9AnonymousEv"></span><span id="arrow::fs::GcsOptions::Anonymous"></span><span class="target" id="structarrow_1_1fs_1_1_gcs_options_1a9e9dea676f7ebe8d6f0fa8a3fa8c34ea"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow2fs10GcsOptionsE" title="arrow::fs::GcsOptions"><span class="n"><span class="pre">GcsOptions</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Anonymous</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow2fs10GcsOptions9AnonymousEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Initialize with anonymous credentials. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs10GcsOptions15FromAccessTokenERKNSt6stringE9TimePoint">
<span id="_CPPv3N5arrow2fs10GcsOptions15FromAccessTokenERKNSt6stringE9TimePoint"></span><span id="_CPPv2N5arrow2fs10GcsOptions15FromAccessTokenERKNSt6stringE9TimePoint"></span><span id="arrow::fs::GcsOptions::FromAccessToken__ssCR.TimePoint"></span><span class="target" id="structarrow_1_1fs_1_1_gcs_options_1ae8955823292e4ad3626a541f4fc5dd51"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow2fs10GcsOptionsE" title="arrow::fs::GcsOptions"><span class="n"><span class="pre">GcsOptions</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">FromAccessToken</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">access_token</span></span>, <span class="n"><span class="pre">TimePoint</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">expiration</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow2fs10GcsOptions15FromAccessTokenERKNSt6stringE9TimePoint" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Initialize with access token. </p>
<p>These credentials are useful when using an out-of-band mechanism to fetch access tokens. Note that access tokens are time limited, you will need to manually refresh the tokens created by the out-of-band mechanism. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs10GcsOptions30FromImpersonatedServiceAccountERK14GcsCredentialsRKNSt6stringE">
<span id="_CPPv3N5arrow2fs10GcsOptions30FromImpersonatedServiceAccountERK14GcsCredentialsRKNSt6stringE"></span><span id="_CPPv2N5arrow2fs10GcsOptions30FromImpersonatedServiceAccountERK14GcsCredentialsRKNSt6stringE"></span><span id="arrow::fs::GcsOptions::FromImpersonatedServiceAccount__GcsCredentialsCR.ssCR"></span><span class="target" id="structarrow_1_1fs_1_1_gcs_options_1a93b008fda6cf2199bf540cd967e22daa"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow2fs10GcsOptionsE" title="arrow::fs::GcsOptions"><span class="n"><span class="pre">GcsOptions</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">FromImpersonatedServiceAccount</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">GcsCredentials</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">base_credentials</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">target_service_account</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow2fs10GcsOptions30FromImpersonatedServiceAccountERK14GcsCredentialsRKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Initialize with service account impersonation. </p>
<p>Service account impersonation allows one principal (a user or service account) to impersonate a service account. It requires that the calling principal has the necessary permissions <em>on</em> the service account. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs10GcsOptions29FromServiceAccountCredentialsERKNSt6stringE">
<span id="_CPPv3N5arrow2fs10GcsOptions29FromServiceAccountCredentialsERKNSt6stringE"></span><span id="_CPPv2N5arrow2fs10GcsOptions29FromServiceAccountCredentialsERKNSt6stringE"></span><span id="arrow::fs::GcsOptions::FromServiceAccountCredentials__ssCR"></span><span class="target" id="structarrow_1_1fs_1_1_gcs_options_1a1706d2a93e486bf7bb15286241fde133"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow2fs10GcsOptionsE" title="arrow::fs::GcsOptions"><span class="n"><span class="pre">GcsOptions</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">FromServiceAccountCredentials</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">json_object</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow2fs10GcsOptions29FromServiceAccountCredentialsERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Creates service account credentials from a JSON object in string form. </p>
<p>The <code class="docutils literal notranslate"><span class="pre">json_object</span></code> is expected to be in the format described by <a class="reference external" href="https://google.aip.dev/auth/4112">aip/4112</a>. Such an object contains the identity of a service account, as well as a private key that can be used to sign tokens, showing the caller was holding the private key.</p>
<p>In GCP one can create several “keys” for each service account, and these keys are downloaded as a JSON “key file”. The contents of such a file are in the format required by this function. Remember that key files and their contents should be treated as any other secret with security implications, think of them as passwords (because they are!), don’t store them or output them where unauthorized persons may read them.</p>
<p>Most applications should probably use default credentials, maybe pointing them to a file with these contents. Using this function may be useful when the json object is obtained from a Cloud Secret Manager or a similar service. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs10GcsOptions7FromUriERKN5arrow4util3UriEPNSt6stringE">
<span id="_CPPv3N5arrow2fs10GcsOptions7FromUriERKN5arrow4util3UriEPNSt6stringE"></span><span id="_CPPv2N5arrow2fs10GcsOptions7FromUriERKN5arrow4util3UriEPNSt6stringE"></span><span id="arrow::fs::GcsOptions::FromUri__arrow::util::UriCR.ssP"></span><span class="target" id="structarrow_1_1fs_1_1_gcs_options_1af1ad3acc2045ac163cfb89edacace0f9"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow2fs10GcsOptionsE" title="arrow::fs::GcsOptions"><span class="n"><span class="pre">GcsOptions</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">FromUri</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">util</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">Uri</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">uri</span></span>, <span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="n sig-param"><span class="pre">out_path</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow2fs10GcsOptions7FromUriERKN5arrow4util3UriEPNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Initialize from URIs such as “gs://bucket/object”. </p>
</dd></dl>
</div>
</dd></dl>
<dl class="cpp class">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs13GcsFileSystemE">
<span id="_CPPv3N5arrow2fs13GcsFileSystemE"></span><span id="_CPPv2N5arrow2fs13GcsFileSystemE"></span><span id="arrow::fs::GcsFileSystem"></span><span class="target" id="classarrow_1_1fs_1_1_gcs_file_system"></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">GcsFileSystem</span></span></span><span class="w"> </span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="k"><span class="pre">public</span></span><span class="w"> </span><span class="n"><span class="pre">arrow</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">fs</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="#_CPPv4N5arrow2fs10FileSystemE" title="arrow::fs::FileSystem"><span class="n"><span class="pre">FileSystem</span></span></a><a class="headerlink" href="#_CPPv4N5arrow2fs13GcsFileSystemE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>GCS-backed <a class="reference internal" href="#classarrow_1_1fs_1_1_file_system"><span class="std std-ref">FileSystem</span></a> implementation. </p>
<p>GCS (Google Cloud Storage - <a class="reference external" href="https://cloud.google.com/storage">https://cloud.google.com/storage</a>) is a scalable object storage system for any amount of data. The main abstractions in GCS are buckets and objects. A bucket is a namespace for objects, buckets can store any number of objects, tens of millions and even billions is not uncommon. Each object contains a single blob of data, up to 5TiB in size. Buckets are typically configured to keep a single version of each object, but versioning can be enabled. Versioning is important because objects are immutable, once created one cannot append data to the object or modify the object data in any way.</p>
<p>GCS buckets are in a global namespace, if a Google Cloud customer creates a bucket named <code class="docutils literal notranslate"><span class="pre">foo</span></code> no other customer can create a bucket with the same name. Note that a principal (a user or service account) may only list the buckets they are entitled to, and then only within a project. It is not possible to list “all” the buckets.</p>
<p>Within each bucket objects are in flat namespace. GCS does not have folders or directories. However, following some conventions it is possible to emulate directories. To this end, this class:</p>
<p><ul class="simple">
<li><p>All buckets are treated as directories at the “root”</p></li>
<li><p>Creating a root directory results in a new bucket being created, this may be slower than most GCS operations.</p></li>
<li><p>The class creates marker objects for a directory, using a metadata attribute to annotate the file.</p></li>
<li><p>GCS can list all the objects with a given prefix, this is used to emulate listing of directories.</p></li>
<li><p>In object lists GCS can summarize all the objects with a common prefix as a single entry, this is used to emulate non-recursive lists. Note that GCS list time is proportional to the number of objects in the prefix. Listing recursively takes almost the same time as non-recursive lists. </p></li>
</ul>
</p>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-functions">Public Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4NK5arrow2fs13GcsFileSystem11PathFromUriERKNSt6stringE">
<span id="_CPPv3NK5arrow2fs13GcsFileSystem11PathFromUriERKNSt6stringE"></span><span id="_CPPv2NK5arrow2fs13GcsFileSystem11PathFromUriERKNSt6stringE"></span><span id="arrow::fs::GcsFileSystem::PathFromUri__ssCRC"></span><span class="target" id="classarrow_1_1fs_1_1_gcs_file_system_1a964f59f73493ae69d199ef1328d46b92"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">PathFromUri</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">uri_string</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4NK5arrow2fs13GcsFileSystem11PathFromUriERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Ensure a URI (or path) is compatible with the given filesystem and return the path. </p>
<p>
This method will check to ensure the given filesystem is compatible with the URI. This can be useful when the user provides both a URI and a filesystem or when a user provides multiple URIs that should be compatible with the same filesystem.</p>
<p>uri_string can be an absolute path instead of a URI. In that case it will ensure the filesystem (if supplied) is the local filesystem (or some custom filesystem that is capable of reading local paths) and will normalize the path’s file separators.</p>
<p>Note, this method only checks to ensure the URI scheme is valid. It will not detect inconsistencies like a mismatching region or endpoint override.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters<span class="colon">:</span></dt>
<dd class="field-odd"><p><strong>uri_string</strong> – A URI representing a resource in the given filesystem.</p>
</dd>
<dt class="field-even">Returns<span class="colon">:</span></dt>
<dd class="field-even"><p>The path inside the filesystem that is indicated by the URI. </p>
</dd>
</dl>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs13GcsFileSystem11GetFileInfoERKNSt6stringE">
<span id="_CPPv3N5arrow2fs13GcsFileSystem11GetFileInfoERKNSt6stringE"></span><span id="_CPPv2N5arrow2fs13GcsFileSystem11GetFileInfoERKNSt6stringE"></span><span id="arrow::fs::GcsFileSystem::GetFileInfo__ssCR"></span><span class="target" id="classarrow_1_1fs_1_1_gcs_file_system_1af6a701f48eb15e11c81b1d39856dcc31"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow2fs8FileInfoE" title="arrow::fs::FileInfo"><span class="n"><span class="pre">FileInfo</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">GetFileInfo</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs13GcsFileSystem11GetFileInfoERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Get info for the given target. </p>
<p>Any symlink is automatically dereferenced, recursively. A nonexistent or unreachable file returns an Ok status and has a FileType of value NotFound. An error status indicates a truly exceptional condition (low-level I/O error, etc.). </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs13GcsFileSystem11GetFileInfoERK12FileSelector">
<span id="_CPPv3N5arrow2fs13GcsFileSystem11GetFileInfoERK12FileSelector"></span><span id="_CPPv2N5arrow2fs13GcsFileSystem11GetFileInfoERK12FileSelector"></span><span id="arrow::fs::GcsFileSystem::GetFileInfo__FileSelectorCR"></span><span class="target" id="classarrow_1_1fs_1_1_gcs_file_system_1a7923c8a06a7f1e742fd04526c276dad3"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">FileInfoVector</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">GetFileInfo</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow2fs12FileSelectorE" title="arrow::fs::FileSelector"><span class="n"><span class="pre">FileSelector</span></span></a><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">select</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs13GcsFileSystem11GetFileInfoERK12FileSelector" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Same, according to a selector. </p>
<p>The selector’s base directory will not be part of the results, even if it exists. If it doesn’t exist, see <code class="docutils literal notranslate"><a class="reference internal" href="#structarrow_1_1fs_1_1_file_selector_1aead1e24f5aa8bb7a3e893436cde83ea7"><span class="std std-ref"><span class="pre">FileSelector::allow_not_found</span></span></a></code>. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs13GcsFileSystem9CreateDirERKNSt6stringEb">
<span id="_CPPv3N5arrow2fs13GcsFileSystem9CreateDirERKNSt6stringEb"></span><span id="_CPPv2N5arrow2fs13GcsFileSystem9CreateDirERKNSt6stringEb"></span><span id="arrow::fs::GcsFileSystem::CreateDir__ssCR.b"></span><span class="target" id="classarrow_1_1fs_1_1_gcs_file_system_1a5c51efda7ad36ff1be675b2be44de619"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">CreateDir</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span>, <span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">recursive</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs13GcsFileSystem9CreateDirERKNSt6stringEb" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Create a directory and subdirectories. </p>
<p>This function succeeds if the directory already exists. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs13GcsFileSystem9DeleteDirERKNSt6stringE">
<span id="_CPPv3N5arrow2fs13GcsFileSystem9DeleteDirERKNSt6stringE"></span><span id="_CPPv2N5arrow2fs13GcsFileSystem9DeleteDirERKNSt6stringE"></span><span id="arrow::fs::GcsFileSystem::DeleteDir__ssCR"></span><span class="target" id="classarrow_1_1fs_1_1_gcs_file_system_1a53fe0705a542dc529029c43e01b669b0"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">DeleteDir</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs13GcsFileSystem9DeleteDirERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Delete a directory and its contents, recursively. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs13GcsFileSystem17DeleteDirContentsERKNSt6stringEb">
<span id="_CPPv3N5arrow2fs13GcsFileSystem17DeleteDirContentsERKNSt6stringEb"></span><span id="_CPPv2N5arrow2fs13GcsFileSystem17DeleteDirContentsERKNSt6stringEb"></span><span id="arrow::fs::GcsFileSystem::DeleteDirContents__ssCR.b"></span><span class="target" id="classarrow_1_1fs_1_1_gcs_file_system_1a84792d7034870af3b5d9a34f377919e6"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">DeleteDirContents</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span>, <span class="kt"><span class="pre">bool</span></span><span class="w"> </span><span class="n sig-param"><span class="pre">missing_dir_ok</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="k"><span class="pre">false</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs13GcsFileSystem17DeleteDirContentsERKNSt6stringEb" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Delete a directory’s contents, recursively. </p>
<p>Like DeleteDir, but doesn’t delete the directory itself. Passing an empty path (”” or “/”) is disallowed, see DeleteRootDirContents. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs13GcsFileSystem21DeleteRootDirContentsEv">
<span id="_CPPv3N5arrow2fs13GcsFileSystem21DeleteRootDirContentsEv"></span><span id="_CPPv2N5arrow2fs13GcsFileSystem21DeleteRootDirContentsEv"></span><span id="arrow::fs::GcsFileSystem::DeleteRootDirContents"></span><span class="target" id="classarrow_1_1fs_1_1_gcs_file_system_1ae1b72e4524170dc71ddd08c9c80774c6"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">DeleteRootDirContents</span></span></span><span class="sig-paren">(</span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs13GcsFileSystem21DeleteRootDirContentsEv" title="Permalink to this definition">#</a><br /></dt>
<dd><p>This is not implemented in <a class="reference internal" href="#classarrow_1_1fs_1_1_gcs_file_system"><span class="std std-ref">GcsFileSystem</span></a>, as it would be too dangerous. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs13GcsFileSystem10DeleteFileERKNSt6stringE">
<span id="_CPPv3N5arrow2fs13GcsFileSystem10DeleteFileERKNSt6stringE"></span><span id="_CPPv2N5arrow2fs13GcsFileSystem10DeleteFileERKNSt6stringE"></span><span id="arrow::fs::GcsFileSystem::DeleteFile__ssCR"></span><span class="target" id="classarrow_1_1fs_1_1_gcs_file_system_1a639c44393fd75808668c213c9f5c4e5f"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">DeleteFile</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs13GcsFileSystem10DeleteFileERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Delete a file. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs13GcsFileSystem4MoveERKNSt6stringERKNSt6stringE">
<span id="_CPPv3N5arrow2fs13GcsFileSystem4MoveERKNSt6stringERKNSt6stringE"></span><span id="_CPPv2N5arrow2fs13GcsFileSystem4MoveERKNSt6stringERKNSt6stringE"></span><span id="arrow::fs::GcsFileSystem::Move__ssCR.ssCR"></span><span class="target" id="classarrow_1_1fs_1_1_gcs_file_system_1a2b1fc47e8d4ae320166c6d92280f8f99"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Move</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">src</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">dest</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs13GcsFileSystem4MoveERKNSt6stringERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Move / rename a file or directory. </p>
<p>If the destination exists:<ul class="simple">
<li><p>if it is a non-empty directory, an error is returned</p></li>
<li><p>otherwise, if it has the same type as the source, it is replaced</p></li>
<li><p>otherwise, behavior is unspecified (implementation-dependent). </p></li>
</ul>
</p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs13GcsFileSystem8CopyFileERKNSt6stringERKNSt6stringE">
<span id="_CPPv3N5arrow2fs13GcsFileSystem8CopyFileERKNSt6stringERKNSt6stringE"></span><span id="_CPPv2N5arrow2fs13GcsFileSystem8CopyFileERKNSt6stringERKNSt6stringE"></span><span id="arrow::fs::GcsFileSystem::CopyFile__ssCR.ssCR"></span><span class="target" id="classarrow_1_1fs_1_1_gcs_file_system_1aa172eb4145ccb0ca038572303ef269ae"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4N5arrow6StatusE" title="arrow::Status"><span class="n"><span class="pre">Status</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">CopyFile</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">src</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">dest</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs13GcsFileSystem8CopyFileERKNSt6stringERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Copy a file. </p>
<p>If the destination exists and is a directory, an error is returned. Otherwise, it is replaced. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs13GcsFileSystem15OpenInputStreamERKNSt6stringE">
<span id="_CPPv3N5arrow2fs13GcsFileSystem15OpenInputStreamERKNSt6stringE"></span><span id="_CPPv2N5arrow2fs13GcsFileSystem15OpenInputStreamERKNSt6stringE"></span><span id="arrow::fs::GcsFileSystem::OpenInputStream__ssCR"></span><span class="target" id="classarrow_1_1fs_1_1_gcs_file_system_1a10266435abdc3c56ab31d132287da1d1"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="io.html#_CPPv4N5arrow2io11InputStreamE" title="arrow::io::InputStream"><span class="n"><span class="pre">InputStream</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">OpenInputStream</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs13GcsFileSystem15OpenInputStreamERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Open an input stream for sequential reading. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs13GcsFileSystem15OpenInputStreamERK8FileInfo">
<span id="_CPPv3N5arrow2fs13GcsFileSystem15OpenInputStreamERK8FileInfo"></span><span id="_CPPv2N5arrow2fs13GcsFileSystem15OpenInputStreamERK8FileInfo"></span><span id="arrow::fs::GcsFileSystem::OpenInputStream__FileInfoCR"></span><span class="target" id="classarrow_1_1fs_1_1_gcs_file_system_1aff0470c463e841ebf2d66c076b1c206b"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="io.html#_CPPv4N5arrow2io11InputStreamE" title="arrow::io::InputStream"><span class="n"><span class="pre">InputStream</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">OpenInputStream</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow2fs8FileInfoE" title="arrow::fs::FileInfo"><span class="n"><span class="pre">FileInfo</span></span></a><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">info</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs13GcsFileSystem15OpenInputStreamERK8FileInfo" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Open an input stream for sequential reading. </p>
<p>This override assumes the given <a class="reference internal" href="#structarrow_1_1fs_1_1_file_info"><span class="std std-ref">FileInfo</span></a> validly represents the file’s characteristics, and may optimize access depending on them (for example avoid querying the file size or its existence). </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs13GcsFileSystem13OpenInputFileERKNSt6stringE">
<span id="_CPPv3N5arrow2fs13GcsFileSystem13OpenInputFileERKNSt6stringE"></span><span id="_CPPv2N5arrow2fs13GcsFileSystem13OpenInputFileERKNSt6stringE"></span><span id="arrow::fs::GcsFileSystem::OpenInputFile__ssCR"></span><span class="target" id="classarrow_1_1fs_1_1_gcs_file_system_1adef5bbbf90ec22c1d0e844ab8e6416f6"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="io.html#_CPPv4N5arrow2io16RandomAccessFileE" title="arrow::io::RandomAccessFile"><span class="n"><span class="pre">RandomAccessFile</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">OpenInputFile</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs13GcsFileSystem13OpenInputFileERKNSt6stringE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Open an input file for random access reading. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs13GcsFileSystem13OpenInputFileERK8FileInfo">
<span id="_CPPv3N5arrow2fs13GcsFileSystem13OpenInputFileERK8FileInfo"></span><span id="_CPPv2N5arrow2fs13GcsFileSystem13OpenInputFileERK8FileInfo"></span><span id="arrow::fs::GcsFileSystem::OpenInputFile__FileInfoCR"></span><span class="target" id="classarrow_1_1fs_1_1_gcs_file_system_1a059f1adc07168d5a3cd608c32f859f8b"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="io.html#_CPPv4N5arrow2io16RandomAccessFileE" title="arrow::io::RandomAccessFile"><span class="n"><span class="pre">RandomAccessFile</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">OpenInputFile</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow2fs8FileInfoE" title="arrow::fs::FileInfo"><span class="n"><span class="pre">FileInfo</span></span></a><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">info</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs13GcsFileSystem13OpenInputFileERK8FileInfo" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Open an input file for random access reading. </p>
<p>This override assumes the given <a class="reference internal" href="#structarrow_1_1fs_1_1_file_info"><span class="std std-ref">FileInfo</span></a> validly represents the file’s characteristics, and may optimize access depending on them (for example avoid querying the file size or its existence). </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs13GcsFileSystem16OpenOutputStreamERKNSt6stringERKNSt10shared_ptrIK16KeyValueMetadataEE">
<span id="_CPPv3N5arrow2fs13GcsFileSystem16OpenOutputStreamERKNSt6stringERKNSt10shared_ptrIK16KeyValueMetadataEE"></span><span id="_CPPv2N5arrow2fs13GcsFileSystem16OpenOutputStreamERKNSt6stringERKNSt10shared_ptrIK16KeyValueMetadataEE"></span><span id="arrow::fs::GcsFileSystem::OpenOutputStream__ssCR.std::shared_ptr:KeyValueMetadataC:CR"></span><span class="target" id="classarrow_1_1fs_1_1_gcs_file_system_1a2a1365e56bb5e1285f98608f3a0f347f"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="io.html#_CPPv4N5arrow2io12OutputStreamE" title="arrow::io::OutputStream"><span class="n"><span class="pre">OutputStream</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">OpenOutputStream</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="datatype.html#_CPPv4N5arrow16KeyValueMetadataE" title="arrow::KeyValueMetadata"><span class="n"><span class="pre">KeyValueMetadata</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">metadata</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs13GcsFileSystem16OpenOutputStreamERKNSt6stringERKNSt10shared_ptrIK16KeyValueMetadataEE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Open an output stream for sequential writing. </p>
<p>If the target already exists, existing data is truncated. </p>
</dd></dl>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs13GcsFileSystem16OpenAppendStreamERKNSt6stringERKNSt10shared_ptrIK16KeyValueMetadataEE">
<span id="_CPPv3N5arrow2fs13GcsFileSystem16OpenAppendStreamERKNSt6stringERKNSt10shared_ptrIK16KeyValueMetadataEE"></span><span id="_CPPv2N5arrow2fs13GcsFileSystem16OpenAppendStreamERKNSt6stringERKNSt10shared_ptrIK16KeyValueMetadataEE"></span><span id="arrow::fs::GcsFileSystem::OpenAppendStream__ssCR.std::shared_ptr:KeyValueMetadataC:CR"></span><span class="target" id="classarrow_1_1fs_1_1_gcs_file_system_1a67b975032860c3067c2d8771a3d347b2"></span><span class="k"><span class="pre">virtual</span></span><span class="w"> </span><a class="reference internal" href="support.html#_CPPv4I0EN5arrow6ResultE" title="arrow::Result"><span class="n"><span class="pre">Result</span></span></a><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><a class="reference internal" href="io.html#_CPPv4N5arrow2io12OutputStreamE" title="arrow::io::OutputStream"><span class="n"><span class="pre">OutputStream</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">OpenAppendStream</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">string</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">path</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="datatype.html#_CPPv4N5arrow16KeyValueMetadataE" title="arrow::KeyValueMetadata"><span class="n"><span class="pre">KeyValueMetadata</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">metadata</span></span><span class="sig-paren">)</span><span class="w"> </span><span class="k"><span class="pre">override</span></span><a class="headerlink" href="#_CPPv4N5arrow2fs13GcsFileSystem16OpenAppendStreamERKNSt6stringERKNSt10shared_ptrIK16KeyValueMetadataEE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Open an output stream for appending. </p>
<p>If the target doesn’t exist, a new empty file is created.</p>
<p>Note: some filesystem implementations do not support efficient appending to an existing file, in which case this method will return NotImplemented. Consider writing to multiple files (using e.g. the dataset layer) instead. </p>
</dd></dl>
</div>
<div class="breathe-sectiondef docutils container">
<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-static-functions">Public Static Functions</p>
<dl class="cpp function">
<dt class="sig sig-object cpp" id="_CPPv4N5arrow2fs13GcsFileSystem4MakeERK10GcsOptionsRKN2io9IOContextE">
<span id="_CPPv3N5arrow2fs13GcsFileSystem4MakeERK10GcsOptionsRKN2io9IOContextE"></span><span id="_CPPv2N5arrow2fs13GcsFileSystem4MakeERK10GcsOptionsRKN2io9IOContextE"></span><span id="arrow::fs::GcsFileSystem::Make__GcsOptionsCR.io::IOContextCR"></span><span class="target" id="classarrow_1_1fs_1_1_gcs_file_system_1a05c91857e57cc5d22c9ead8908bed03c"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="n"><span class="pre">std</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">shared_ptr</span></span><span class="p"><span class="pre">&lt;</span></span><a class="reference internal" href="#_CPPv4N5arrow2fs13GcsFileSystemE" title="arrow::fs::GcsFileSystem"><span class="n"><span class="pre">GcsFileSystem</span></span></a><span class="p"><span class="pre">&gt;</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Make</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4N5arrow2fs10GcsOptionsE" title="arrow::fs::GcsOptions"><span class="n"><span class="pre">GcsOptions</span></span></a><span class="w"> </span><span class="p"><span class="pre">&amp;</span></span><span class="n sig-param"><span class="pre">options</span></span>, <span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">IOContext</span></span><span class="p"><span class="pre">&amp;</span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">io</span></span><span class="p"><span class="pre">::</span></span><span class="n"><span class="pre">default_io_context</span></span><span class="p"><span class="pre">(</span></span><span class="p"><span class="pre">)</span></span><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4N5arrow2fs13GcsFileSystem4MakeERK10GcsOptionsRKN2io9IOContextE" title="Permalink to this definition">#</a><br /></dt>
<dd><p>Create a <a class="reference internal" href="#classarrow_1_1fs_1_1_gcs_file_system"><span class="std std-ref">GcsFileSystem</span></a> instance from the given options. </p>
</dd></dl>
</div>
</dd></dl>
</section>
</section>
</section>
</article>
<footer class="prev-next-footer">
<div class="prev-next-area">
<a class="left-prev"
href="flightsql.html"
title="previous page">
<i class="fa-solid fa-angle-left"></i>
<div class="prev-next-info">
<p class="prev-next-subtitle">previous</p>
<p class="prev-next-title">Arrow Flight SQL</p>
</div>
</a>
<a class="right-next"
href="dataset.html"
title="next page">
<div class="prev-next-info">
<p class="prev-next-subtitle">next</p>
<p class="prev-next-title">Dataset</p>
</div>
<i class="fa-solid fa-angle-right"></i>
</a>
</div>
</footer>
</div>
<div class="bd-sidebar-secondary bd-toc"><div class="sidebar-secondary-items sidebar-secondary__inner">
<div class="sidebar-secondary-item">
<div
id="pst-page-navigation-heading-2"
class="page-toc tocsection onthispage">
<i class="fa-solid fa-list"></i> On this page
</div>
<nav class="bd-toc-nav page-toc" aria-labelledby="pst-page-navigation-heading-2">
<ul class="visible nav section-nav flex-column">
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#interface">Interface</a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#high-level-factory-functions">High-level factory functions</a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#factory-registration-functions">Factory registration functions</a></li>
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#concrete-implementations">Concrete implementations</a><ul class="visible nav section-nav flex-column">
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#subtree-filesystem-wrapper">“Subtree” filesystem wrapper</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#local-filesystem">Local filesystem</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#s3-filesystem">S3 filesystem</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#hadoop-filesystem">Hadoop filesystem</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#google-cloud-storage-filesystem">Google Cloud Storage filesystem</a></li>
</ul>
</li>
</ul>
</nav></div>
<div class="sidebar-secondary-item">
<div class="tocsection editthispage">
<a href="https://github.com/apache/arrow/edit/main/docs/source/cpp/api/filesystem.rst">
<i class="fa-solid fa-pencil"></i>
Edit on GitHub
</a>
</div>
</div>
</div></div>
</div>
<footer class="bd-footer-content">
</footer>
</main>
</div>
</div>
<!-- Scripts loaded after <body> so the DOM is not blocked -->
<script src="../../_static/scripts/bootstrap.js?digest=8d27b9dea8ad943066ae"></script>
<script src="../../_static/scripts/pydata-sphinx-theme.js?digest=8d27b9dea8ad943066ae"></script>
<footer class="bd-footer">
<div class="bd-footer__inner bd-page-width">
<div class="footer-items__start">
<div class="footer-item">
<p class="copyright">
© Copyright 2016-2024 Apache Software Foundation.
Apache Arrow, Arrow, Apache, the Apache feather logo, and the Apache Arrow project logo are either registered trademarks or trademarks of The Apache Software Foundation in the United States and other countries.
<br/>
</p>
</div>
<div class="footer-item">
<p class="sphinx-version">
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 6.2.0.
<br/>
</p>
</div>
</div>
<div class="footer-items__end">
<div class="footer-item">
<p class="theme-version">
Built with the <a href="https://pydata-sphinx-theme.readthedocs.io/en/stable/index.html">PyData Sphinx Theme</a> 0.15.2.
</p></div>
</div>
</div>
</footer>
</body>
</html>