<!--
SPDX-FileCopyrightText: The Apache Software Foundation

SPDX-License-Identifier: Apache-2.0
-->

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Arrow.HDFSFileSystem</title>
  <meta name="viewport" content="width=device-width, initial-scale=1">

  <meta charset="utf-8" />

  
  <meta property="og:type" content="website"/>

  

  
  <meta property="og:title" content="Arrow.HDFSFileSystem"/>
  <meta property="og:description" content="Reference for Arrow.HDFSFileSystem"/>
  <meta name="twitter:title" content="Arrow.HDFSFileSystem"/>
  <meta name="twitter:description" content="Reference for Arrow.HDFSFileSystem"/>


  
  <meta name="twitter:card" content="summary"/>

  
  
  
  

  <link rel="stylesheet" href="style.css" type="text/css" />

  

  
  <script src="urlmap.js"></script>
  
  
  <script src="fzy.js"></script>
  <script src="search.js"></script>
  
  <script src="main.js"></script>

  
</head>

<body>
  <div id="body-wrapper" tabindex="-1">

    <nav class="sidebar devhelp-hidden">
      
      
      <div class="search section">
        <form id="search-form" autocomplete="off">
          <input id="search-input" type="text" name="do-not-autocomplete" placeholder="Click, or press 's' to search" autocomplete="off"/>
        </form>
      </div>
      
      <div class="section namespace">
        <h3><a href="index.html">Arrow</a></h3>
        <p>API Version: 25.0</p>
        
        <p>Library Version: 25.0.0.dev</p>
        
      </div>
      
<div class="section">
  <h5>Type</h5>
  <div class="links">
    <a class="current" href="class.HDFSFileSystem.html#description">HDFSFileSystem</a>
  </div>
</div>


  


  


  


  


  


  


  



      <div class="section generator">
        <p>Generated by <a href="https://gitlab.gnome.org/GNOME/gi-docgen">gi-docgen</a> 2025.3</p>
      </div>
    </nav>

    <button id="btn-to-top" class="hidden"><span class="up-arrow"></span></button>

    
<section id="main" class="content">
  <header>
    <h3>Class</h3>
    <h1 aria-label="Name"><a href="index.html">Arrow</a><span class="sep" role="presentation"></span>HDFSFileSystem</h1>
  </header>

  <section>
    <summary>
      <div class="docblock">
        <p></p>
      </div>

      <div class="toggle-wrapper">
        <h4 id="description" style="display:flex;">
          Description
          <a href="#description" class="anchor"></a>
          
        </h4>

        <pre><code>class Arrow.HDFSFileSystem : Arrow.FileSystem
{
  /* No available fields */
}</pre></code>

        <div class="docblock">
          <p>No description available.</p>
        </div>

        <div class="docblock">
          
          
          
        </div>

        
      </div>
    </summary>

    

    
    <div class="toggle-wrapper ancestors">
      <h4 id="ancestors">
        Ancestors
        <a href="#ancestors" class="anchor"></a>
      </h4>

      <div class="docblock">
        <ul>
        
          
          <li class="class"><a href="class.FileSystem.html" title="FileSystem">GArrowFileSystem</a></li>
          
        
          
          <li class="class"><a class="external" href="javascript:void(0)" data-link="class.Object.html" data-namespace="GObject">GObject</a></li>
          
        
        </ul>
      </div>
    </div>
    

    

    

    

    

    
    <div class="toggle-wrapper methods">
      <h4 id="methods">
        Instance methods
        <a href="#methods" class="anchor"></a>
      </h4>

      <div class="docblock">
      
      </div>

      
        
        <div class="toggle-wrapper default-hide ancestor-methods">
          <h5 style="display:block;">Methods inherited from <a href="class.FileSystem.html">GArrowFileSystem</a> (15)</h5><div class="docblock">
          
            <h6><a href="method.FileSystem.copy_file.html">garrow_file_system_copy_file</a></h6><div class="docblock">
              <p>Copy a file.
If the destination exists and is a directory, an error is returned.
Otherwise, it is&nbsp;replaced.</p>
            </div>
            <div class="docblock">
              <p><span class="emblem available">since: 0.17.0</span></p>
            </div>
            
            <h6><a href="method.FileSystem.create_dir.html">garrow_file_system_create_dir</a></h6><div class="docblock">
              <p>Create a directory and subdirectories.
This function succeeds if the directory already&nbsp;exists.</p>
            </div>
            <div class="docblock">
              <p><span class="emblem available">since: 0.17.0</span></p>
            </div>
            
            <h6><a href="method.FileSystem.delete_dir.html">garrow_file_system_delete_dir</a></h6><div class="docblock">
              <p>Delete a directory and its contents,&nbsp;recursively.</p>
            </div>
            <div class="docblock">
              <p><span class="emblem available">since: 0.17.0</span></p>
            </div>
            
            <h6><a href="method.FileSystem.delete_dir_contents.html">garrow_file_system_delete_dir_contents</a></h6><div class="docblock">
              <p>Delete a directory&#8217;s contents, recursively. Like
garrow_file_system_delete_dir(), but doesn&#8217;t delete the directory
itself. Passing an empty path (<code>""</code>) will wipe the entire file
system&nbsp;tree.</p>
            </div>
            <div class="docblock">
              <p><span class="emblem available">since: 0.17.0</span></p>
            </div>
            
            <h6><a href="method.FileSystem.delete_file.html">garrow_file_system_delete_file</a></h6><div class="docblock">
              <p>Delete a&nbsp;file.</p>
            </div>
            <div class="docblock">
              <p><span class="emblem available">since: 0.17.0</span></p>
            </div>
            
            <h6><a href="method.FileSystem.delete_files.html">garrow_file_system_delete_files</a></h6><div class="docblock">
              <p>Delete many&nbsp;files.</p>
            </div>
            <div class="docblock">
              <p><span class="emblem available">since: 0.17.0</span></p>
            </div>
            
            <h6><a href="method.FileSystem.get_file_info.html">garrow_file_system_get_file_info</a></h6><div class="docblock">
              <p>Get information for the given&nbsp;target.</p>
            </div>
            <div class="docblock">
              <p><span class="emblem available">since: 0.17.0</span></p>
            </div>
            
            <h6><a href="method.FileSystem.get_file_infos_paths.html">garrow_file_system_get_file_infos_paths</a></h6><div class="docblock">
              <p>Get information same as <code>garrow_file_system_get_file_info()</code>
for the given many targets at&nbsp;once.</p>
            </div>
            <div class="docblock">
              <p><span class="emblem available">since: 0.17.0</span></p>
            </div>
            
            <h6><a href="method.FileSystem.get_file_infos_selector.html">garrow_file_system_get_file_infos_selector</a></h6><div class="docblock">
              <p>Get information same as <code>garrow_file_system_get_file_info()</code>
according to a&nbsp;selector.</p>
            </div>
            <div class="docblock">
              <p><span class="emblem available">since: 0.17.0</span></p>
            </div>
            
            <h6><a href="method.FileSystem.get_type_name.html">garrow_file_system_get_type_name</a></h6><div class="docblock">
              No description available.
            </div>
            <div class="docblock">
              <p><span class="emblem available">since: 0.17.0</span></p>
            </div>
            
            <h6><a href="method.FileSystem.move.html">garrow_file_system_move</a></h6><div class="docblock">
              <p>Move / rename a file or a directory.
If the destination exists:
- if it is a non-empty directory, an error is returned
- otherwise, if it has the same type as the source, it is replaced
- otherwise, behavior is unspecified&nbsp;(implementation-dependent).</p>
            </div>
            <div class="docblock">
              <p><span class="emblem available">since: 0.17.0</span></p>
            </div>
            
            <h6><a href="method.FileSystem.open_append_stream.html">garrow_file_system_open_append_stream</a></h6><div class="docblock">
              <p>Open an output stream for appending.
If the target doesn&#8217;t exist, a new empty file is&nbsp;created.</p>
            </div>
            <div class="docblock">
              <p><span class="emblem available">since: 0.17.0</span></p>
            </div>
            
            <h6><a href="method.FileSystem.open_input_file.html">garrow_file_system_open_input_file</a></h6><div class="docblock">
              <p>Open an input file for random access&nbsp;reading.</p>
            </div>
            <div class="docblock">
              <p><span class="emblem available">since: 0.17.0</span></p>
            </div>
            
            <h6><a href="method.FileSystem.open_input_stream.html">garrow_file_system_open_input_stream</a></h6><div class="docblock">
              <p>Open an input stream for sequential&nbsp;reading.</p>
            </div>
            <div class="docblock">
              <p><span class="emblem available">since: 0.17.0</span></p>
            </div>
            
            <h6><a href="method.FileSystem.open_output_stream.html">garrow_file_system_open_output_stream</a></h6><div class="docblock">
              <p>Open an output stream for sequential writing.
If the target already exists, the existing data is&nbsp;truncated.</p>
            </div>
            <div class="docblock">
              <p><span class="emblem available">since: 0.17.0</span></p>
            </div>
            
          </div>
        </div>
        
      
        
        <div class="toggle-wrapper default-hide ancestor-methods"><h5 style="display:block;">Methods inherited from <a class="external" href="javascript:void(0)" data-link="class.Object.html" data-namespace="GObject">GObject</a> (43)</h5>
          <div class="docblock">
          
            <div class="docblock">
              <p>Please see&nbsp;<a class="external" href="javascript:void(0)" data-link="class.Object.html#methods" data-namespace="GObject">GObject</a>&nbsp;for a full list of methods.</em></p>
            </div>
          
          </div>
        </div>
        
      

      
    </div>
    

    
    <div class="toggle-wrapper properties">
      <h4 id="properties">
        Properties
        <a href="#properties" class="anchor"></a>
      </h4>

      

      
        
        <div class="toggle-wrapper default-hide ancestor-properties">
          <h5 style="display:block;">Properties inherited from <a href="class.FileSystem.html">GArrowFileSystem</a> (1)</h5><div class="docblock">
          
            <h6><a href="property.FileSystem.file-system.html">Arrow.FileSystem:file-system</a></h6><div class="docblock">
              No description available.
            </div>
            <div class="docblock">
              <p></p>
            </div>
            
          </div>
        </div>
        
      
        
      

      

    </div>
    

    
    <div class="signals toggle-wrapper">
      <h4 id="signals">
        Signals
        <a href="#signals" class="anchor"></a>
      </h4>

      

      
        
      
        
        <div class="toggle-wrapper default-hide ancestor-signals"><h5 style="display:block;">Signals inherited from <a class="external" href="javascript:void(0)" data-link="class.Object.html" data-namespace="GObject">GObject</a> (1)</h5>
          <div class="docblock">
          <h6><a class="external" href="javascript:void(0)" data-namespace="GObject" data-link="signal.Object.notify.html">GObject::notify</a></h6>
            <div class="docblock">
              <p>The notify signal is emitted on an object when one of its properties has
its value set through g_object_set_property(), g_object_set(), et&nbsp;al.</p>
            </div>
          </div>
        </div>
        
      

      

    </div>
    

    
    <div class="class toggle-wrapper default-hide">
      <h4 id="class-struct">
        Class structure
        <a href="#class-struct" class="anchor"></a>
      </h4>

      <div class="docblock">
        <pre><code>struct ArrowHDFSFileSystemClass {
  GArrowFileSystemClass parent_class;
  
}</code></pre>
      </div>

      <div class="docblock">
        <p>No description available.</p>
      </div>

      
      <div class="docblock">
        <h6>Class members</h6>

        <dl class="members">
        
          <dt><code>parent_class: GArrowFileSystemClass</code></dt>
          <dd><p>No description available.</p></dd>
        
        </dd>
      </div>
      
    </div>
    

    

    

  </section>
</section>


    
<div id="toc" class="toc">
  <nav aria-labelledby="toc-title">
    <p id="toc-title">Content</p>
    <ul class="toc-list">
      <li class="toc-list-item"><a href="#description"><span class="link-text">Description</span></a></li>
      
      
      
      <li class="toc-list-item"><a href="#ancestors"><span class="link-text">Ancestors</span></a></li>
      
      
      

      

      

      

      

      

      

    </ul>
  </nav>
</div>


    <section id="search" class="content hidden"></section>

    <footer>
    
    </footer>
  </div>
</body>
</html>