<!-- **********************************************************************
  copyright            : (C) 2000-2019
                         Rafi Yanai, Shie Erlich, Frank Schoolmeesters
                         & the Krusader Krew
  e-mail               : krusader-devel@googlegroups.com
  web site             : https://krusader.org
  description          : a Krusader Documentation File

***************************************************************************
* Permission is granted to copy, distribute and/or modify this            *
* document under the terms of the GNU Free Documentation License,         *
* Version 1.1 or any later version published by the Free Software         *
* Foundation; with no Invariant Sections, no Front-Cover Texts and        *
* no Back-Cover Texts.  A copy of the license is available on the         *
* GNU site https://www.gnu.org/licenses/fdl.html or by writing to:        *
* Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,    *
* MA 02111-1307, USA.                                                     *
*********************************************************************** -->
<sect1 id="vfs">
  <title>Virtual file systems (VFS)</title>
  <indexterm>
    <primary>VFS</primary>
  </indexterm>
  <para>A basic 
  <link linkend="features">OFM feature</link> is VFS, this an
  abstracted layer over all kinds of archived information (ZIP
  files, &FTP; servers, TAR archives, NFS filesystems, SAMBA shares,
  ISO CD/DVD images, RPM catalogs, &etc;), which allows the user to
  access all the information in these divergent types of
  filesystems transparently - just like entering an ordinary
  sub-directory. &krusader; supports several virtual
  file systems:</para>
  <itemizedlist>
    <listitem>
      <para>
      <link linkend="remote-connections">Remote connections
      VFS</link>: provides the capability of working with a remote
      connection session (&FTP;, NFS, Samba, FISH, SFTP) like with
      local filesystems. It is perfect for complex remote operations
      and almost as powerful as most standalone GUI remote
      clients.</para>
    </listitem>
    <listitem>
      <para>
      <link linkend="archives">Archive VFS</link>: allows to browse
      archives in VFS as it was a directory (ace, arj, bzip2, deb,
      gzip, iso, lha, rar, rpm, tar, zip and 7-zip).</para>
    </listitem>
    <listitem>
      <para>
      <link linkend="archives">Search VFS</link>: 
      <guibutton>Feed to listbox</guibutton> places the search
      results in VFS.</para>
    </listitem>
    <listitem>
      <para>
      <link linkend="synchronizer">Synchronizer VFS</link>: places
      the synchronizer results in VFS.</para>
    </listitem>
  </itemizedlist>
  <para>Actions you perform on the files in VFS are
  performed on the 'real' files. You do not just delete files from
  the VFS - you delete them from your hard drive. Limitations: you
  cannot create directories inside a VFS.</para>
  <para>It is possible to keep the directory structure when doing a
  copy from a virtual folder to a non virtual folder, by
  selecting the "Keep virtual directory structure" check box of the
  copy dialog. Imagine the following virtual folder: 
  <screen><prompt>$</prompt> <userinput>file:/home/myhome/mydir1/myfile1</userinput></screen>
  <screen><prompt>$</prompt> <userinput>file:/home/myhome/mydir1/myfile2</userinput></screen>
  <screen><prompt>$</prompt> <userinput>file:/home/myhome/mydir2/myfile3</userinput></screen>
  Then do the following steps:</para>
  <itemizedlist>
    <listitem>
      <para>go to the virtual folder and select the files</para>
    </listitem>
    <listitem>
      <para>select a destination folder (non virtual!)</para>
    </listitem>
    <listitem>
      <para>press 
      <keycap>F5</keycap>-&gt; copy dialog
      appears</para>
    </listitem>
    <listitem>
      <para>Check 
      <guilabel>Keep virtual directory structure</guilabel></para>
    </listitem>
    <listitem>
      <para>Select 
      <filename>/home/myhome/</filename> for base
      &URL;</para>
    </listitem>
    <listitem>
      <para>Start copy by pressing OK</para>
    </listitem>
  </itemizedlist>
  <para>The result will be: 
  <screen><prompt>$</prompt> <userinput>destinationdir/mydir1/myfile1</userinput></screen>
  <screen><prompt>$</prompt> <userinput>destinationdir/mydir1/myfile2</userinput></screen>
  <screen><prompt>$</prompt> <userinput>destinationdir/mydir2/myfile3</userinput></screen>
  </para>
</sect1>
