<page xmlns="http://projectmallard.org/1.0/"
      xmlns:its="http://www.w3.org/2005/11/its"
      type="topic"
      id="tech-gio">

  <info>
    <link type="guide" xref="tech" group="gio"/>
    <revision pkgversion="3.0" date="2011-04-05" status="review"/>

    <credit type="author copyright">
      <name>Shaun McCance</name>
      <email its:translate="no">shaunm@gnome.org</email>
      <years>2011</years>
    </credit>
    <credit type="copyright editor">
      <name>Federico Mena Quintero</name>
      <email its:translate="no">federico@gnome.org</email>
      <years>2013</years>
    </credit>

    <include href="cc-by-sa-3-0.xml" xmlns="http://www.w3.org/2001/XInclude"/>

    <desc>File and URI handling, asynchronous file operations, volume
    handling</desc>
  </info>

<title>GIO Files</title>

<p>GIO provides APIs for asynchronously reading and writing files and
other streams. Files are referenced by URIs (uniform resource locators), and backends can
provide access to more than just local files. When running under the
GNOME desktop, GIO uses GVFS to allow access to files over SFTP, FTP,
WebDAV, SMB, and other popular protocols. This transparent network
file access is free to all applications using GIO.</p>

<p>The GIO file APIs were designed to be used in event-driven graphical
interfaces. The non-blocking, asynchronous design means your user interface
doesn't hang while waiting for a file. There are also synchronous versions
of the APIs available, which are sometimes more convenient for worker
threads or processes.</p>

<p>GIO also provides routines for managing drives and volumes, querying
file types and icons, and finding applications to open files.</p>

<list style="compact">
  <item><p><link href="http://developer.gnome.org/gio/stable/">GIO Reference Manual</link></p></item>
</list>

</page>
