<doc>
  <assembly>
    <name>Rebex.FileSystem</name>
  </assembly>
  <members>
    <member name="T:Rebex.IO.FileSystem.DirectoryNode">
      <summary>
            Represents a directory (folder) in the file system.
            </summary>
    </member>
    <member name="M:Rebex.IO.FileSystem.DirectoryNode.#ctor(System.String,Rebex.IO.FileSystem.DirectoryNode,Rebex.IO.FileSystem.NodeTimeInfo,Rebex.IO.FileSystem.NodeAttributes)">
      <summary>
            Initializes a new instance of <see cref="T:Rebex.IO.FileSystem.DirectoryNode" />.
            </summary>
      <param name="nodeName">Name of the directory.</param>
      <param name="parent">Parent of the directory. </param>
      <param name="nodeTimeInfo">Time info of the directory.</param>
      <param name="attributes">Attributes of the directory.</param>
    </member>
    <member name="M:Rebex.IO.FileSystem.DirectoryNode.GetDirectories">
      <summary>
            Gets an enumerator that iterates through the directories in the current directory.
            </summary>
      <returns>An enumerator that iterates through the directories in the current directory.</returns>
    </member>
    <member name="M:Rebex.IO.FileSystem.DirectoryNode.GetFiles">
      <summary>
            Gets an enumerator that iterates through the files in the current directory.
            </summary>
      <returns>An enumerator that iterates through the files in the current directory.</returns>
    </member>
    <member name="M:Rebex.IO.FileSystem.DirectoryNode.CreateFileSystem">
      <summary>
            Creates new (virtual) <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> with <see cref="T:Rebex.IO.FileSystem.DirectoryNode" /> root path.
            </summary>
      <example>
        <code>
            var myFromDirectoryProvider = myDirectory.CreateFileSystem(); 
            </code>
      </example>
      <returns>A new instance of <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> with the root path of <see cref="T:Rebex.IO.FileSystem.DirectoryNode" />.</returns>
    </member>
    <member name="M:Rebex.IO.FileSystem.DirectoryNode.AsVDirectoryInfo">
      <summary>
            Converts this instance to an equivalent instance of the <see cref="T:Rebex.IO.VDirectoryInfo" /> class.
            </summary>
      <returns>An instance of the <see cref="T:Rebex.IO.VDirectoryInfo" /> equivalent to this instance.</returns>
    </member>
    <member name="T:Rebex.IO.FileSystem.FileNode">
      <summary>
            Represents a file in the file system.
            </summary>
    </member>
    <member name="M:Rebex.IO.FileSystem.FileNode.#ctor(System.String,Rebex.IO.FileSystem.DirectoryNode,Rebex.IO.FileSystem.NodeTimeInfo,Rebex.IO.FileSystem.NodeAttributes)">
      <summary>
            Initializes a new instance of <see cref="T:Rebex.IO.FileSystem.FileNode" />.
            </summary>
      <param name="nodeName">Name of the file.</param>
      <param name="parent">Parent of the file. </param>
      <param name="nodeTimeInfo">TimeInfo of the file.</param>
      <param name="attributes">Attributes of the file.</param>
    </member>
    <member name="M:Rebex.IO.FileSystem.FileNode.AsVFileInfo">
      <summary>
            Converts this instance to an equivalent instance of the <see cref="T:Rebex.IO.VFileInfo" /> class.
            </summary>
      <returns>An instance of the <see cref="T:Rebex.IO.VFileInfo" /> equivalent to this instance.</returns>
    </member>
    <member name="T:Rebex.IO.FileSystem.FileSystemIsReadOnlyException">
      <summary>
            This exception is thrown when an attempt is made to write to a read-only
            Rebex file system.
             </summary>
    </member>
    <member name="M:Rebex.IO.FileSystem.FileSystemIsReadOnlyException.#ctor">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.IO.FileSystem.FileSystemIsReadOnlyException" /> class.
            </summary>
    </member>
    <member name="M:Rebex.IO.FileSystem.FileSystemIsReadOnlyException.#ctor(System.String)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.IO.FileSystem.FileSystemIsReadOnlyException" /> class.
            </summary>
    </member>
    <member name="M:Rebex.IO.FileSystem.FileSystemIsReadOnlyException.#ctor(System.String,System.Exception)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.IO.FileSystem.FileSystemIsReadOnlyException" /> class.
            </summary>
    </member>
    <member name="M:Rebex.IO.FileSystem.FileSystemIsReadOnlyException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.IO.FileSystem.FileSystemIsReadOnlyException" /> class.
            </summary>
    </member>
    <member name="T:Rebex.IO.FileSystem.FileSystemOperationCanceledException">
      <summary>
            This exception is thrown when an operation in the Rebex file system is canceled.
            <para>
            Typically this exception is thrown when
            the user of the Rebex file system calls method
            <see cref="M:Rebex.IO.FileSystem.Notifications.PreviewFileSystemOperationEventAgs.CancelOperation" />
            in the event handler of the some Preview* event in the
            <see cref="T:Rebex.IO.FileSystem.Notifications.FileSystemNotifier" />.
            </para></summary>
    </member>
    <member name="M:Rebex.IO.FileSystem.FileSystemOperationCanceledException.#ctor">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.IO.FileSystem.FileSystemOperationCanceledException" /> class.
            </summary>
    </member>
    <member name="M:Rebex.IO.FileSystem.FileSystemOperationCanceledException.#ctor(System.String)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.IO.FileSystem.FileSystemOperationCanceledException" /> class.
            </summary>
    </member>
    <member name="M:Rebex.IO.FileSystem.FileSystemOperationCanceledException.#ctor(System.String,System.Exception)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.IO.FileSystem.FileSystemOperationCanceledException" /> class.
            </summary>
    </member>
    <member name="M:Rebex.IO.FileSystem.FileSystemOperationCanceledException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.IO.FileSystem.FileSystemOperationCanceledException" /> class.
            </summary>
    </member>
    <member name="T:Rebex.IO.FileSystem.FileSystemUnboundedRecursiveCallException">
      <summary>
            Represents an exception that is thrown when the execution stack
            of the custom file provider (class derived from the <see cref="T:Rebex.IO.FileSystem.ReadOnlyFileSystemProvider" />
            or <see cref="T:Rebex.IO.FileSystem.ReadWriteFileSystemProvider" />) contains too many recursive calls.
            <para>
            This exception is a strong indication of a faulty behavior
            caused by a bug in the custom file system provider implementation.
            </para></summary>
    </member>
    <member name="M:Rebex.IO.FileSystem.FileSystemUnboundedRecursiveCallException.#ctor">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.IO.FileSystem.FileSystemUnboundedRecursiveCallException" /> class.
            </summary>
    </member>
    <member name="M:Rebex.IO.FileSystem.FileSystemUnboundedRecursiveCallException.#ctor(System.String)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.IO.FileSystem.FileSystemUnboundedRecursiveCallException" /> class.
            </summary>
    </member>
    <member name="M:Rebex.IO.FileSystem.FileSystemUnboundedRecursiveCallException.#ctor(System.String,System.Exception)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.IO.FileSystem.FileSystemUnboundedRecursiveCallException" /> class.
            </summary>
    </member>
    <member name="M:Rebex.IO.FileSystem.FileSystemUnboundedRecursiveCallException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.IO.FileSystem.FileSystemUnboundedRecursiveCallException" /> class.
            </summary>
    </member>
    <member name="T:Rebex.IO.FileSystem.FileSystemProviderExtensions">
      <summary>
            This class contains extension methods to the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> class.
            </summary>
    </member>
    <member name="M:Rebex.IO.FileSystem.FileSystemProviderExtensions.AsVDriveInfo(Rebex.IO.FileSystem.FileSystemProvider)">
      <summary>
            Method returns an instance of the <see cref="T:Rebex.IO.VDriveInfo" /> class for the <paramref name="fileSystemProvider" />.
            </summary>
      <param name="fileSystemProvider">An instance of the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" />.</param>
      <returns>An instance of the <see cref="T:Rebex.IO.VDriveInfo" /> class for <paramref name="fileSystemProvider" />.</returns>
    </member>
    <member name="M:Rebex.IO.FileSystem.FileSystemProviderExtensions.GetRootVDirectoryInfo(Rebex.IO.FileSystem.FileSystemProvider)">
      <summary>
            Method returns a root <see cref="T:Rebex.IO.VDirectoryInfo" /> for the <paramref name="fileSystemProvider" />.
            </summary>
      <param name="fileSystemProvider">An instance of the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" />.</param>
      <returns>A root <see cref="T:Rebex.IO.VDirectoryInfo" /> for the <paramref name="fileSystemProvider" />.</returns>
    </member>
    <member name="T:Rebex.IO.FileSystem.VDirectoryInfoExtensions">
      <summary>
            This class contains extension methods to the <see cref="T:Rebex.IO.VDirectoryInfo" /> class.
            </summary>
    </member>
    <member name="M:Rebex.IO.FileSystem.VDirectoryInfoExtensions.AsDirectoryNode(Rebex.IO.VDirectoryInfo)">
      <summary>
            Converts the <paramref name="vDirectoryInfo" /> to an equivalent instance of the <see cref="T:Rebex.IO.FileSystem.DirectoryNode" /> class.
            </summary>
      <param name="vDirectoryInfo">An instance of the <see cref="T:Rebex.IO.VDirectoryInfo" />.</param>
      <returns>An instance of the <see cref="T:Rebex.IO.FileSystem.DirectoryNode" /> equivalent to the <paramref name="vDirectoryInfo" />.</returns>
    </member>
    <member name="T:Rebex.IO.FileSystem.VFileInfoExtensions">
      <summary>
            This class contains extension methods to the <see cref="T:Rebex.IO.VFileInfo" /> class.
            </summary>
    </member>
    <member name="M:Rebex.IO.FileSystem.VFileInfoExtensions.AsFileNode(Rebex.IO.VFileInfo)">
      <summary>
            Converts the <paramref name="vFileInfo" /> to an equivalent instance of the <see cref="T:Rebex.IO.FileSystem.FileNode" /> class.
            </summary>
      <param name="vFileInfo">An instance of the <see cref="T:Rebex.IO.VFileInfo" />.</param>
      <returns>An instance of the <see cref="T:Rebex.IO.FileSystem.FileNode" /> equivalent to the <paramref name="vFileInfo" />.</returns>
    </member>
    <member name="T:Rebex.IO.FileSystem.LocalFileSystemProvider">
      <summary>
            A file system provider which provides access to the local (physical) file system.
            <remarks><see cref="T:Rebex.IO.FileSystem.LocalFileSystemProvider" /> uses 'immediate' write streams in a <see cref="T:Rebex.IO.FileSystem.NodeContent" />.
            See <see cref="M:Rebex.IO.FileSystem.NodeContent.CreateImmediateWriteContent(System.IO.Stream)" /> for details and limitations.
            </remarks></summary>
      <seealso cref="T:Rebex.IO.FileSystem.Notifications.FileSystemNotifier" />
      <seealso cref="T:Rebex.IO.FileSystem.FileSystemProviderExtensions" />
    </member>
    <member name="M:Rebex.IO.FileSystem.LocalFileSystemProvider.#ctor(System.String,Rebex.IO.FileSystem.FileSystemType,Rebex.IO.FileSystem.FileSystemProviderSettings)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.IO.FileSystem.LocalFileSystemProvider" /> with the root path
            of <paramref name="localFileSystemPath" />, file system type of <paramref name="fileSystemType" /> and <paramref name="settings" />.
            </summary>
      <param name="localFileSystemPath">Local file system path which represents the root directory of the <see cref="T:Rebex.IO.FileSystem.LocalFileSystemProvider" />.</param>
      <param name="fileSystemType">Specifies the type of the file system (read-only or read-write).</param>
      <param name="settings">File system provider settings.</param>
    </member>
    <member name="M:Rebex.IO.FileSystem.LocalFileSystemProvider.#ctor(System.String,Rebex.IO.FileSystem.FileSystemType)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.IO.FileSystem.LocalFileSystemProvider" /> with the root path
            of <paramref name="localFileSystemPath" /> and file system type of <paramref name="fileSystemType" />.
            <see cref="T:Rebex.IO.FileSystem.LocalFileSystemProvider" /> uses <see cref="P:Rebex.IO.FileSystem.FileSystemProviderSettings.Default" /> settings.
            </summary>
      <param name="localFileSystemPath">Local file system path which represents the root directory of the <see cref="T:Rebex.IO.FileSystem.LocalFileSystemProvider" />.</param>
      <param name="fileSystemType">Specifies the type of the file system (read-only or read-write).</param>
    </member>
    <member name="M:Rebex.IO.FileSystem.LocalFileSystemProvider.#ctor(System.String)">
      <summary>
            Initializes a new instance of the read-write <see cref="T:Rebex.IO.FileSystem.LocalFileSystemProvider" /> with the root path
            of <paramref name="localFileSystemPath" />.
            <see cref="T:Rebex.IO.FileSystem.LocalFileSystemProvider" /> uses <see cref="P:Rebex.IO.FileSystem.FileSystemProviderSettings.Default" /> settings.
            </summary>.
            <param name="localFileSystemPath">Local file system path which represents the root directory of the <see cref="T:Rebex.IO.FileSystem.LocalFileSystemProvider" />.</param></member>
    <member name="M:Rebex.IO.FileSystem.LocalFileSystemProvider.#ctor(System.String,Rebex.IO.FileSystem.FileSystemProviderSettings)">
      <summary>
            Initializes a new instance of the read-write <see cref="T:Rebex.IO.FileSystem.LocalFileSystemProvider" /> with the root path
            of <paramref name="localFileSystemPath" /> and <paramref name="settings" />.
            <see cref="T:Rebex.IO.FileSystem.LocalFileSystemProvider" /> uses <see cref="P:Rebex.IO.FileSystem.FileSystemProviderSettings.Default" /> settings.
            </summary>.
            <param name="localFileSystemPath">Local file system path which represents the root directory of the <see cref="T:Rebex.IO.FileSystem.LocalFileSystemProvider" />.</param><param name="settings">File system provider settings.</param></member>
    <member name="P:Rebex.IO.FileSystem.LocalFileSystemProvider.Root">
      <summary>
            Gets the root directory of this instance.
            </summary>
    </member>
    <member name="M:Rebex.IO.FileSystem.LocalFileSystemProvider.CreateChildFileSystem(Rebex.IO.FileSystem.NodePath)">
      <summary>
            Creates a child file system with the root path of <paramref name="directoryPath" />.
            </summary>
      <param name="directoryPath">Root path of the child file system.</param>
      <returns>Child file system with the root path of <paramref name="directoryPath" />.</returns>
    </member>
    <member name="T:Rebex.IO.FileSystem.MemoryFileSystemProvider">
      <summary>
            A file system provider which stores all the data in memory. All the file system provider data are deleted at the latest when the application process exits.
            </summary>
      <remarks>
        <see cref="T:Rebex.IO.FileSystem.MemoryFileSystemProvider" /> uses 'delayed' write streams in a <see cref="T:Rebex.IO.FileSystem.NodeContent" />.
            See <see cref="M:Rebex.IO.FileSystem.NodeContent.CreateDelayedWriteContent(System.IO.Stream)" /> for details and limitations.
            </remarks>
      <seealso cref="T:Rebex.IO.FileSystem.Notifications.FileSystemNotifier" />
      <seealso cref="T:Rebex.IO.FileSystem.FileSystemProviderExtensions" />
    </member>
    <member name="M:Rebex.IO.FileSystem.MemoryFileSystemProvider.#ctor">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.IO.FileSystem.MemoryFileSystemProvider" />.
            <see cref="T:Rebex.IO.FileSystem.MemoryFileSystemProvider" /> uses <see cref="P:Rebex.IO.FileSystem.FileSystemProviderSettings.Default" /> settings.
            </summary>
    </member>
    <member name="M:Rebex.IO.FileSystem.MemoryFileSystemProvider.#ctor(Rebex.IO.FileSystem.FileSystemProviderSettings)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.IO.FileSystem.MemoryFileSystemProvider" /> with <paramref name="settings" />.
            </summary>
      <param name="settings">File system provider settings.</param>
    </member>
    <member name="P:Rebex.IO.FileSystem.MemoryFileSystemProvider.Root">
      <summary>
            Gets the root directory of this instance.
            </summary>
    </member>
    <member name="M:Rebex.IO.FileSystem.MemoryFileSystemProvider.CreateChildFileSystem(Rebex.IO.FileSystem.NodePath)">
      <summary>
            Creates a child file system with the root path of <paramref name="directoryPath" />.
            </summary>
      <param name="directoryPath">Root path of the child file system.</param>
      <returns>Child file system with the root path of <paramref name="directoryPath" />.</returns>
    </member>
    <member name="T:Rebex.IO.FileSystem.MissingNodeException">
      <summary>
            Represents an exception that is thrown when an attempt to access a node that does not exist in the Rebex file system fails.
            </summary>
    </member>
    <member name="M:Rebex.IO.FileSystem.MissingNodeException.#ctor">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.IO.FileSystem.MissingNodeException" /> class.
            </summary>
    </member>
    <member name="M:Rebex.IO.FileSystem.MissingNodeException.#ctor(System.String)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.IO.FileSystem.MissingNodeException" /> class.
            </summary>
    </member>
    <member name="M:Rebex.IO.FileSystem.MissingNodeException.#ctor(System.String,System.Exception)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.IO.FileSystem.MissingNodeException" /> class.
            </summary>
    </member>
    <member name="M:Rebex.IO.FileSystem.MissingNodeException.#ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.IO.FileSystem.MissingNodeException" /> class.
            </summary>
    </member>
    <member name="T:Rebex.IO.FileSystem.MountCapableFileSystemProvider">
      <summary>
            A unix-like file system provider which mounts other file systems to the specified <see cref="T:Rebex.IO.FileSystem.DirectoryNode" />.
            </summary>
      <remarks>
        <see cref="T:Rebex.IO.FileSystem.MountCapableFileSystemProvider" /> guarantees that a <see cref="T:Rebex.IO.FileSystem.Notifications.FileSystemNotifier" /> associated with an instance raises (republishes) all events that are raised by mounted file system providers.
            For example: When the mounted provider raises <see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.CreatePreview" /> event, then the instance of the <see cref="T:Rebex.IO.FileSystem.MountCapableFileSystemProvider" /> also raises <see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.CreatePreview" /> event.
            </remarks>
      <seealso cref="T:Rebex.IO.FileSystem.Notifications.FileSystemNotifier" />
      <seealso cref="T:Rebex.IO.FileSystem.FileSystemProviderExtensions" />
    </member>
    <member name="P:Rebex.IO.FileSystem.MountCapableFileSystemProvider.Root">
      <summary>
            Gets the root directory of this instance.
            </summary>
    </member>
    <member name="M:Rebex.IO.FileSystem.MountCapableFileSystemProvider.#ctor">
      <summary>
            Initializes a new instance of <see cref="T:Rebex.IO.FileSystem.MountCapableFileSystemProvider" />.
            <see cref="T:Rebex.IO.FileSystem.MountCapableFileSystemProvider" /> uses <see cref="P:Rebex.IO.FileSystem.FileSystemProviderSettings.Default" /> settings.
            </summary>
    </member>
    <member name="M:Rebex.IO.FileSystem.MountCapableFileSystemProvider.#ctor(Rebex.IO.FileSystem.FileSystemProviderSettings)">
      <summary>
            Initializes a new instance of <see cref="T:Rebex.IO.FileSystem.MountCapableFileSystemProvider" /> with <paramref name="settings" />.
            </summary>
      <param name="settings">File system provider settings.</param>
    </member>
    <member name="M:Rebex.IO.FileSystem.MountCapableFileSystemProvider.CreateChildFileSystem(Rebex.IO.FileSystem.NodePath)">
      <summary>
            Creates a child file system with the root path of <paramref name="directoryPath" />.
            </summary>
      <param name="directoryPath">Root path of the child file system.</param>
      <returns>Child file system with the root path of <paramref name="directoryPath" />.</returns>
    </member>
    <member name="M:Rebex.IO.FileSystem.MountCapableFileSystemProvider.Mount(Rebex.IO.FileSystem.NodePath,Rebex.IO.FileSystem.FileSystemProvider,Rebex.IO.FileSystem.NodePath)">
      <summary>
            Mounts a file system found on <paramref name="targetDirectoryPath" /> in the <paramref name="targetProvider" /> at the <paramref name="mountDirectoryPath" />.
            </summary>
      <example>
        <code>
            //Create new MemoryFileSystemProvider
            var memoryProvider = new MemoryFileSystemProvider();
            
            //Create to be mounted directory.
            var mySpecialDir = new DirectoryNode("SpecialDir", memoryProvider.Root).Create() as DirectoryNode;
            
            //Mount memoryProvider directory with name mySpecialDir at the directory /tmp/mySpecialDir.
            mountCapableFileProvider.Mount(@"/Tmp/mySpecialDir", memoryProvider, @"/SpecialDir");
            </code>
      </example>
      <param name="mountDirectoryPath">A mount point on which a <paramref name="targetDirectoryPath" /> is logically attached.</param>
      <param name="targetProvider">
        <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> to be mounted.</param>
      <param name="targetDirectoryPath">Path of the directory in the <paramref name="targetProvider" /> to be mounted at the <paramref name="mountDirectoryPath" />.</param>
      <returns>A <see cref="T:Rebex.IO.FileSystem.DirectoryNode" /> on which a <paramref name="targetDirectoryPath" /> is logically attached.</returns>
    </member>
    <member name="M:Rebex.IO.FileSystem.MountCapableFileSystemProvider.Mount(Rebex.IO.FileSystem.NodePath,Rebex.IO.FileSystem.DirectoryNode)">
      <summary>
            Mounts a file system found on <paramref name="targetDirectory" /> at the <paramref name="mountDirectoryPath" />.
            </summary>
      <example>
        <code>
            //Create new MemoryFileSystemProvider
            var memoryProvider = new MemoryFileSystemProvider();
            
            //Create to be mounted directory.
            var mySpecialDir = new DirectoryNode("SpecialDir", memoryProvider.Root).Create() as DirectoryNode;
            
            //Mount mySpecialDir at the directory /tmp/mySpecialDir.
            mountCapableFileProvider.Mount(@"/tmp/mySpecialDir", mySpecialDir);
            </code>
      </example>
      <param name="mountDirectoryPath">A mount point on which a <paramref name="targetDirectory" /> is logically attached.</param>
      <param name="targetDirectory">Directory to be mounted at the <paramref name="mountDirectoryPath" />.</param>
      <returns>A <see cref="T:Rebex.IO.FileSystem.DirectoryNode" /> on which a <paramref name="targetDirectory" /> is logically attached.</returns>
    </member>
    <member name="M:Rebex.IO.FileSystem.MountCapableFileSystemProvider.Mount(Rebex.IO.FileSystem.NodePath,Rebex.IO.FileSystem.FileSystemProvider)">
      <summary>
            Mounts a file system found on root directory in the <paramref name="targetProvider" /> at the <paramref name="mountDirectoryPath" />.
            </summary>
      <example>
        <code>
            //Create new memory provider
            var memoryProvider = new MemoryFileSystemProvider();
            
            //Create LocalFileSystemProvider for path C:\
            var cFs = new LocalFileSystemProvider(C_DRIVE_PATH);
            
            //Create LocalFileSystemProvider for path D:\
            var dFs = new LocalFileSystemProvider(D_DRIVE_PATH);
            
            //Mount file system providers
            mountCapableFileSystem.Mount(@"/C", cFs);
            mountCapableFileSystem.Mount(@"/D", dFs);
            mountCapableFileSystem.Mount(@"/Temp", memoryProvider);
            </code>
      </example>
      <param name="mountDirectoryPath">A mount point on which a <paramref name="targetProvider" /> is logically attached.</param>
      <param name="targetProvider">
        <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> to be mounted.</param>
      <returns>A <see cref="T:Rebex.IO.FileSystem.DirectoryNode" /> on which a <paramref name="targetProvider" /> is logically attached.</returns>
    </member>
    <member name="M:Rebex.IO.FileSystem.MountCapableFileSystemProvider.Unmount(Rebex.IO.FileSystem.DirectoryNode)">
      <summary>
            Unmounts (disassociates) a file system from the <paramref name="mountDirectory" />.
            </summary>
      <example>
        <code>
            //Mount directory.
            var mountedDirectory = mountCapableFileSystem.Mount(@"/Temp", memoryProvider);
            //Use mountedDirectory
            //...
            //...
            //Disassociate file system from previously mounted directory '/Temp'.
            mountCapableFileSystem.Unmount(mountedDirectory);
            </code>
      </example>
      <param name="mountDirectory">A mount point with a file system previously mounted using the Mount method.</param>
      <seealso cref="M:Rebex.IO.FileSystem.MountCapableFileSystemProvider.Mount(Rebex.IO.FileSystem.NodePath,Rebex.IO.FileSystem.FileSystemProvider,Rebex.IO.FileSystem.NodePath)" />
      <seealso cref="M:Rebex.IO.FileSystem.MountCapableFileSystemProvider.Mount(Rebex.IO.FileSystem.NodePath,Rebex.IO.FileSystem.FileSystemProvider)" />
      <seealso cref="M:Rebex.IO.FileSystem.MountCapableFileSystemProvider.Mount(Rebex.IO.FileSystem.NodePath,Rebex.IO.FileSystem.DirectoryNode)" />
    </member>
    <member name="M:Rebex.IO.FileSystem.MountCapableFileSystemProvider.Unmount(Rebex.IO.FileSystem.NodePath)">
      <summary>
            Unmounts (disassociates) a file system from <see cref="T:Rebex.IO.FileSystem.DirectoryNode" /> found on the <paramref name="mountDirectoryPath" />.
            </summary>
      <example>
        <code>
            //Disassociate file system from directory '/tmp'
            hybridFileSystem.Unmount(@"/tmp");
            </code>
      </example>
      <param name="mountDirectoryPath">A mount point path with a file system previously mounted using the Mount method.</param>
      <seealso cref="M:Rebex.IO.FileSystem.MountCapableFileSystemProvider.Mount(Rebex.IO.FileSystem.NodePath,Rebex.IO.FileSystem.FileSystemProvider,Rebex.IO.FileSystem.NodePath)" />
      <seealso cref="M:Rebex.IO.FileSystem.MountCapableFileSystemProvider.Mount(Rebex.IO.FileSystem.NodePath,Rebex.IO.FileSystem.FileSystemProvider)" />
      <seealso cref="M:Rebex.IO.FileSystem.MountCapableFileSystemProvider.Mount(Rebex.IO.FileSystem.NodePath,Rebex.IO.FileSystem.DirectoryNode)" />
    </member>
    <member name="T:Rebex.IO.FileSystem.NodeBase">
      <summary>
            Provides the base class for both <see cref="T:Rebex.IO.FileSystem.FileNode" /> and <see cref="T:Rebex.IO.FileSystem.DirectoryNode" /> objects.
            <para>
            It is not expected that you inherit from the class <see cref="T:Rebex.IO.FileSystem.NodeBase" />. Use <see cref="T:Rebex.IO.FileSystem.DirectoryNode" /> or <see cref="T:Rebex.IO.FileSystem.FileNode" /> in your code.
            </para></summary>
    </member>
    <member name="M:Rebex.IO.FileSystem.NodeBase.#ctor(System.String,Rebex.IO.FileSystem.NodeType,Rebex.IO.FileSystem.DirectoryNode,Rebex.IO.FileSystem.NodeTimeInfo,Rebex.IO.FileSystem.NodeAttributes,System.Boolean)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.IO.FileSystem.NodeBase" /></summary>
      <param name="nodeName">Name of the node.</param>
      <param name="nodeType">Type of the node.</param>
      <param name="parent">Parent of the node. Only root node does not have parent.</param>
      <param name="nodeTimeInfo">TimeInfo of the node</param>
      <param name="attributes">Attributes of the node</param>
      <param name="isRootDirectory">true if node represents Root directory, otherwise false.</param>
    </member>
    <member name="P:Rebex.IO.FileSystem.NodeBase.Name">
      <summary>
            Gets the name of the node.
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.NodeBase.Extension">
      <summary>
            Gets the extension of the node. If the node does not have extension, then returs empty string.
            <para>
            Name = myfile.txt.
            Extension returns 'txt' (without quotes).
            </para><para /><para /><para>
            Name = myDirectory.
            Extension returns empty string.
            </para></summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.NodeBase.Path">
      <summary>Full path of the node.</summary>
      <para>
            e.g. /MyDirectory/MyNestedDirectory/myFile.txt
            </para>
    </member>
    <member name="P:Rebex.IO.FileSystem.NodeBase.NodeType">
      <summary>
            Gets the type of the node.
            <Returns><para>
            NodeType.File for files.
            </para><para>NodeType.Directory for directories.</para></Returns></summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.NodeBase.Parent">
      <summary>
            Gets the parent directory of the node.
            <para>
            For the <b>root directory</b> returns null.
            </para></summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.NodeBase.IsDirectory">
      <summary>
            Returns true if the current node is <see cref="T:Rebex.IO.FileSystem.DirectoryNode" />, otherwise returns false.
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.NodeBase.IsRootDirectory">
      <summary>
            Returns true if the current node is root <see cref="T:Rebex.IO.FileSystem.DirectoryNode" /> (node with <see cref="P:Rebex.IO.FileSystem.NodeBase.Path" /> equal to '/'), otherwise returns false.
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.NodeBase.IsFile">
      <summary>
            Returns true if the current node is <see cref="T:Rebex.IO.FileSystem.FileNode" />, otherwise returns false.
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.NodeBase.Length">
      <summary>
            Gets the length of the content returned by the method <see cref="M:Rebex.IO.FileSystem.NodeBase.GetContent(Rebex.IO.FileSystem.NodeContentParameters)" />.
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.NodeBase.Attributes">
      <summary>
            Gets attributes of the node.
            <para>
            Implementation of the property calls <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> methods, therefore
            repeated consecutive calls of the property can be expensive. Consider storing the value of the property in a local variable.
            </para></summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.NodeBase.TimeInfo">
      <summary>
            Gets the time info of the node.
            <para><b>CreationTime.</b></para><para><b>AccessTime.</b></para><para><b>LastWriteTime.</b></para><para>
            Concrete file system providers are responsible for the correctness and validity of the returned dates.
            </para><para>
            Implementation of the property calls <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> methods, therefore
            repeated consecutive calls of the property can be expensive. Consider storing the value of the property in a local variable.
            </para></summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.NodeBase.IsDeleted">
      <summary>
            Returns true if the node is deleted (does not exist in the file system), otherwise false.
            <para>
            Implementation of the property calls <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> methods, therefore
            repeated consecutive calls of the property can be expensive. Consider storing the value of the property in a local variable.
            </para></summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.NodeBase.Context">
      <summary>
            Gets or sets user-defined object.
            </summary>
    </member>
    <member name="M:Rebex.IO.FileSystem.NodeBase.GetEnumerator">
      <summary>
            Gets an enumerator that iterates through the child nodes in the current node.
            </summary>
      <returns>An enumerator that iterates through the child nodes in the current node.</returns>
    </member>
    <member name="M:Rebex.IO.FileSystem.NodeBase.Equals(Rebex.IO.FileSystem.NodeBase)">
      <summary>Indicates whether the current <see cref="T:Rebex.IO.FileSystem.NodeBase" /> is equal to another object of the same type.</summary>
      <returns>true if the current <see cref="T:Rebex.IO.FileSystem.NodeBase" /> is equal to the <paramref name="other" /> parameter; otherwise, false.</returns>
      <param name="other">A <see cref="T:Rebex.IO.FileSystem.NodeBase" /> to compare with this <see cref="T:Rebex.IO.FileSystem.NodeBase" />.</param>
    </member>
    <member name="M:Rebex.IO.FileSystem.NodeBase.Equals(System.Object)">
      <summary>
            Determines whether the specified <paramref name="obj" /> is equal to this object.
            </summary>
      <param name="obj">The <see cref="T:System.Object" /> to compare with this object.</param>
      <returns>
        <c>true</c> if the specified <paramref name="obj" /> is equal to this object; otherwise, <c>false</c>.
            </returns>
    </member>
    <member name="M:Rebex.IO.FileSystem.NodeBase.GetHashCode">
      <summary>
            Gets a hash code of this object.
            </summary>
      <returns>
            A hash code of this object.
            </returns>
    </member>
    <member name="M:Rebex.IO.FileSystem.NodeBase.op_Equality(Rebex.IO.FileSystem.NodeBase,Rebex.IO.FileSystem.NodeBase)">
      <summary>
            Determines whether two specified <see cref="T:Rebex.IO.FileSystem.NodeBase" /> have the same value.
            </summary>
      <param name="left">The first node to compare, or null.</param>
      <param name="right">The second string to compare, or null.</param>
      <returns>true if the value of left is the same as the value of right, otherwise false.</returns>
    </member>
    <member name="M:Rebex.IO.FileSystem.NodeBase.op_Inequality(Rebex.IO.FileSystem.NodeBase,Rebex.IO.FileSystem.NodeBase)">
      <summary>
            Determines whether two specified <see cref="T:Rebex.IO.FileSystem.NodeBase" /> have different values.
            </summary>
      <param name="left">The first node to compare, or null.</param>
      <param name="right">The second node to compare, or null.</param>
      <returns>true if the value of left is different from the value of right, otherwise false.</returns>
    </member>
    <member name="M:Rebex.IO.FileSystem.NodeBase.GetChildren">
      <summary>
            Gets an enumerator that iterates through the child nodes in the current node.
            </summary>
      <returns>An enumerator that iterates through the child nodes in the current node.</returns>
    </member>
    <member name="M:Rebex.IO.FileSystem.NodeBase.GetChildren(Rebex.IO.FileSystem.NodeType)">
      <summary>
            Gets an enumerator that iterates through the child nodes in the current node.
            Only nodes whose <see cref="P:Rebex.IO.FileSystem.NodeBase.NodeType" /> matches the <paramref name="requiredType" /> are returned.
            </summary>
      <param name="requiredType">Required type of the child nodes.</param>
      <returns>An enumerator that iterates through the child nodes in the current node.</returns>
    </member>
    <member name="M:Rebex.IO.FileSystem.NodeBase.GetContent(Rebex.IO.FileSystem.NodeContentParameters)">
      <summary>
            Gets the content of the node.
            </summary>
      <param name="contentParameters">Required charakteristic of the returned content.</param>
      <returns>Returns the content of the node.</returns>
    </member>
    <member name="M:Rebex.IO.FileSystem.NodeBase.Create">
      <summary>
            Creates this node, if it does not exist.
            </summary>
      <returns>Up-to-date representation of the node in the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" />.</returns>
      <example>
        <code>
            var myNode = new FileNode("myNewFile.txt", parent);
            myNode = myNode.Create();
            </code>
      </example>
    </member>
    <member name="M:Rebex.IO.FileSystem.NodeBase.Delete">
      <summary>
            Deletes this node.
            </summary>
      <returns>Up-to-date representation of the node in the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" />.</returns>
    </member>
    <member name="M:Rebex.IO.FileSystem.NodeBase.Rename(System.String)">
      <summary>
            Renames this node.
            </summary>
      <param name="newName">New name of the node.</param>
      <returns>Up-to-date representation of the node in the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" />. Returned node should have new name.</returns>
    </member>
    <member name="M:Rebex.IO.FileSystem.NodeBase.MoveTo(Rebex.IO.FileSystem.DirectoryNode)">
      <summary>
            Moves this node to the <paramref name="newParentNode" />.
            </summary>
      <param name="newParentNode">New parent of the node.</param>
      <returns>Up-to-date representation of the moved node in the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" />.</returns>
    </member>
    <member name="M:Rebex.IO.FileSystem.NodeBase.CopyTo(Rebex.IO.FileSystem.DirectoryNode)">
      <summary>
            Copies the node to the <paramref name="targetNode" />.
            </summary>
      <param name="targetNode">New parent directory for the copy of the node.</param>
      <returns>Up-to-date representation of the moved node in the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" />. </returns>
    </member>
    <member name="M:Rebex.IO.FileSystem.NodeBase.SetContent(Rebex.IO.FileSystem.NodeContent)">
      <summary>
            Sets a new content of the node. Old content will be deleted!
            </summary>
      <param name="content">New content of the node.</param>
      <returns>Up-to-date representation of the node in the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" />.</returns>
    </member>
    <member name="M:Rebex.IO.FileSystem.NodeBase.SetAttributes(Rebex.IO.FileSystem.NodeAttributes)">
      <summary>
            Sets attributes of the node.
            </summary>
      <param name="attributes">New attributes of the node.</param>
      <returns>Up-to-date representation of the node in the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" />.</returns>
    </member>
    <member name="M:Rebex.IO.FileSystem.NodeBase.SetTimeInfo(Rebex.IO.FileSystem.NodeTimeInfo)">
      <summary>
             Sets the time info of the node.
            </summary>
      <param name="newTimeInfo" />
      <returns>Up-to-date representation of the node in the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" />.</returns>
    </member>
    <member name="M:Rebex.IO.FileSystem.NodeBase.Exists">
      <summary>
            Gets a value indicating whether the node exists.
            </summary>
      <returns>true if the node exists, otherwise false.</returns>
    </member>
    <member name="M:Rebex.IO.FileSystem.NodeBase.ToString">
      <summary>Returns a string that represents the current <see cref="T:Rebex.IO.FileSystem.NodeBase" />.</summary>
      <returns>A string that represents the current <see cref="T:Rebex.IO.FileSystem.NodeBase" />.</returns>
    </member>
    <member name="M:Rebex.IO.FileSystem.NodeBase.GetUnaliasedNode">
      <summary>
            Gets the node with real path (relative to <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" />) in the file system.
            Both <see cref="T:Rebex.IO.FileSystem.MountCapableFileSystemProvider" /> and <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> returned from the method  <see cref="M:Rebex.IO.FileSystem.DirectoryNode.CreateFileSystem" /> create virtual nodes with virtual (alias) paths. Virtual node "wraps" real node.
            Use method GetUnaliasedNode to "unwrap" real nodes from virtual nodes.
            <para>
            Calling method GetUnaliasedNode on the already unwrapped node has no effect  - method returns this (already unwrapped) instance.
            </para><para>
            Method GetUnaliasedNode is typically used in the <see cref="T:Rebex.IO.FileSystem.Notifications.FileSystemNotifier" /> event handlers.  Usually you don't need to call this method directly, because virtual (alias) and real nodes in the typical development scenario works as expected.
            </para></summary>
      <returns> The unwrapped node with real path in the file system.</returns>
    </member>
    <member name="T:Rebex.IO.FileSystem.Notifications.CopyMoveCompletedEventArgs">
      <summary>
            Provides data for <see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.CopyCompleted" /> and <see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.MoveCompleted" /> events.
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.Notifications.CopyMoveCompletedEventArgs.OldNode">
      <summary>
            Gets the original ("old") node which was copied/moved.
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.Notifications.CopyMoveCompletedEventArgs.ResultNode">
      <summary>
            Gets or sets node resulting from the file system operation.
            </summary>
    </member>
    <member name="T:Rebex.IO.FileSystem.Notifications.CopyMoveEventArgs">
      <summary>
            Provides data for <see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.CopySurrogate" /> and <see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.MoveSurrogate" /> events.
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.Notifications.CopyMoveEventArgs.OriginalNode">
      <summary>
            Gets the original (to be copied/moved node).
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.Notifications.CopyMoveEventArgs.NewPath">
      <summary>
            Gets the expected path of the <see cref="P:Rebex.IO.FileSystem.Notifications.CopyMoveEventArgs.ResultNode" /> after the copy/move operation.
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.Notifications.CopyMoveEventArgs.ResultNode">
      <summary>
            Gets or sets node resulting from the file system operation.
            <para>
            Default value is null.
            </para></summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.Notifications.CopyMoveEventArgs.NewParent">
      <summary>
            Gets the expected parent of the <see cref="P:Rebex.IO.FileSystem.Notifications.CopyMoveEventArgs.ResultNode" /> after the copy/move operation.
            </summary>
    </member>
    <member name="T:Rebex.IO.FileSystem.Notifications.ExistsNodeEventArgs">
      <summary>
            Provides data for <see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.ExistsNodeSurrogate" /> and <see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.ExistsNodeCompleted" /> events.
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.Notifications.ExistsNodeEventArgs.Path">
      <summary>
        <see cref="T:Rebex.IO.FileSystem.NodePath" /> to be verified.
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.Notifications.ExistsNodeEventArgs.ResultExists">
      <summary>
            Gets or sets return value for the current file system operation.
            <para>
            Default value in the <see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.ExistsNodeSurrogate" /> is false.
            </para></summary>
    </member>
    <member name="T:Rebex.IO.FileSystem.Notifications.FileSystemNotificationExtensions">
      <summary>
            Takes care of the notification support in the Rebex File System. 
            Provides <see cref="T:Rebex.IO.FileSystem.Notifications.FileSystemNotifier" /> that publish events for the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" />.
            </summary>
    </member>
    <member name="M:Rebex.IO.FileSystem.Notifications.FileSystemNotificationExtensions.GetFileSystemNotifier(Rebex.IO.FileSystem.FileSystemProvider)">
      <summary>
            Provides access to the instance of the <see cref="T:Rebex.IO.FileSystem.Notifications.FileSystemNotifier" /> 
            for the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" />.
            </summary>
      <param name="fileSystemProvider">Used <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" />.</param>
      <returns>Instance of the <see cref="T:Rebex.IO.FileSystem.Notifications.FileSystemNotifier" /> for the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" />.</returns>
      <seealso cref="T:Rebex.IO.FileSystem.Notifications.FileSystemNotifier" />
      <seealso cref="P:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.Provider" />
    </member>
    <member name="T:Rebex.IO.FileSystem.Notifications.FileSystemNotifier">
      <summary>
            Raises events for the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> operations.
            <para>
            Typical order of the related hook events that are associated with one file system operation:
            </para><para><ol><li>Preview event (e.g. <see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.CreatePreview" />). Pre-hook event.</li><li>Surrogate event (e.g. <see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.CreateSurrogate" />). Pre-hook event.</li><li>Completed event (e.g. <see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.CreateCompleted" />). Post-hook event.</li></ol></para><para><strong>
            When the virtual file system is used in the FileServer component, then the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property
            in the handler of the FileSystemNotifier event.
            </strong></para></summary>
      <remarks>Preview and Completed events are raised only for the top level ("root") operation. 
            In this context top level ("root") operation means an operation initiated by the user of the file system.
            Only Surrogate events are raised for the file system internal/nested operations.</remarks>
      <seealso cref="T:Rebex.IO.FileSystem.LocalFileSystemProvider" />
      <seealso cref="T:Rebex.IO.FileSystem.MemoryFileSystemProvider" />
      <seealso cref="T:Rebex.IO.FileSystem.MountCapableFileSystemProvider" />
      <seealso cref="T:Rebex.IO.FileSystem.ReadOnlyFileSystemProvider" />
      <seealso cref="T:Rebex.IO.FileSystem.ReadWriteFileSystemProvider" />
      <seealso cref="T:Rebex.IO.FileSystem.FileSystemProvider" />
    </member>
    <member name="P:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.Provider">
      <summary>
            Gets the associated <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" />.
            </summary>
      <returns>An associated <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" />.</returns>
    </member>
    <member name="M:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.Dispose">
      <summary>Performs application-defined tasks associated with freeing, releasing, or resetting resources.</summary>
    </member>
    <member name="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.GetNodesPreview">
      <summary>
            Occurs before the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> returns a collection of the resolved instances of the class <see cref="T:Rebex.IO.FileSystem.NodeBase" />.
            If you cancel the operation using the <see cref="M:Rebex.IO.FileSystem.Notifications.PreviewFileSystemOperationEventAgs.CancelOperation" /> method, 
            then <see cref="T:System.OperationCanceledException" /> will be thrown.
            <para>
            When the virtual file system is used in the FileServer component, then the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property
            in the handler of this event.
            </para></summary>
    </member>
    <member name="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.GetNodesSurrogate">
      <summary>
            Occurs before the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> returns a collection of the resolved instances of the <see cref="T:Rebex.IO.FileSystem.NodeBase" />.
            You can register event handler, 
            which overrides default implementation of the operation in the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> and provides own result for the operation.
            <para>
            When the virtual file system is used in the FileServer component, then the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property
            in the handler of this event.
            </para></summary>
    </member>
    <member name="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.GetNodesCompleted">
      <summary>
            Occurs after the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> returns a collection of the resolved instances of the <see cref="T:Rebex.IO.FileSystem.NodeBase" />.
            </summary>
      <para>
            When the virtual file system is used in the FileServer component, then the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property
            in the handler of this event.
            </para>
    </member>
    <member name="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.GetNodePreview">
      <summary>
            Occurs before the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> returns a resolved instance of the class <see cref="T:Rebex.IO.FileSystem.NodeBase" />.
            If you cancel the operation using the <see cref="M:Rebex.IO.FileSystem.Notifications.PreviewFileSystemOperationEventAgs.CancelOperation" /> method, 
            then <see cref="T:System.OperationCanceledException" /> will be thrown.
            <para>
            When the virtual file system is used in the FileServer component, then the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property
            in the handler of this event.
            </para></summary>
    </member>
    <member name="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.GetNodeSurrogate">
      <summary>
            Occurs before the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> returns a resolved instance of the class <see cref="T:Rebex.IO.FileSystem.NodeBase" />.
            You can register event handler, 
            which overrides default implementation of the operation in the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> and provides own result for the operation.
            <para>
            When the virtual file system is used in the FileServer component, then the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property
            in the handler of this event.
            </para></summary>
    </member>
    <member name="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.GetNodeCompleted">
      <summary>
            Occurs after the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> returns a resolved instance of the <see cref="T:Rebex.IO.FileSystem.NodeBase" />.
            <para>
            When the virtual file system is used in the FileServer component, then the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property
            in the handler of this event.
            </para></summary>
    </member>
    <member name="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.CreatePreview">
      <summary>
            Occurs before the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> persists new <see cref="T:Rebex.IO.FileSystem.NodeBase" />.
            If you cancel the operation using the <see cref="M:Rebex.IO.FileSystem.Notifications.PreviewFileSystemOperationEventAgs.CancelOperation" /> method, 
            then <see cref="T:System.OperationCanceledException" /> will be thrown.
            <para>
            When the virtual file system is used in the FileServer component, then the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property
            in the handler of this event.
            </para></summary>
    </member>
    <member name="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.CreateSurrogate">
      <summary>
            Occurs before the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> persists new <see cref="T:Rebex.IO.FileSystem.NodeBase" />.
            You can register event handler, 
            which overrides default implementation of the operation in the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> and provides own result for the operation.
            <para>
            When the virtual file system is used in the FileServer component, then the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property
            in the handler of this event.
            </para></summary>
    </member>
    <member name="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.CreateCompleted">
      <summary>
            Occurs after the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> persists new <see cref="T:Rebex.IO.FileSystem.NodeBase" />.
            <para>
            When the virtual file system is used in the FileServer component, then the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property
            in the handler of this event.
            </para></summary>
    </member>
    <member name="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.ExistsNodePreview">
      <summary>
            Occurs before the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> checks the existence of the <see cref="T:Rebex.IO.FileSystem.NodeBase" />.
            If you cancel the operation using the <see cref="M:Rebex.IO.FileSystem.Notifications.PreviewFileSystemOperationEventAgs.CancelOperation" /> method, 
            then <see cref="T:System.OperationCanceledException" /> will be thrown.
            <para>
            When the virtual file system is used in the FileServer component, then the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property
            in the handler of this event.
            </para></summary>
    </member>
    <member name="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.ExistsNodeSurrogate">
      <summary>
            Occurs before the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> checks the existence of the <see cref="T:Rebex.IO.FileSystem.NodeBase" />.
            You can register event handler, 
            which overrides default implementation of the operation in the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> and provides own result for the operation.
            <para>
            When the virtual file system is used in the FileServer component, then the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property
            in the handler of this event.
            </para></summary>
    </member>
    <member name="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.ExistsNodeCompleted">
      <summary>
            Occurs after the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> checks the existence of the <see cref="T:Rebex.IO.FileSystem.NodeBase" />.
            <para>
            When the virtual file system is used in the FileServer component, then the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property
            in the handler of this event.
            </para></summary>
    </member>
    <member name="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.RenamePreview">
      <summary>
            Occurs before the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> renames instance of the <see cref="T:Rebex.IO.FileSystem.NodeBase" />.
            If you cancel the operation using the <see cref="M:Rebex.IO.FileSystem.Notifications.PreviewFileSystemOperationEventAgs.CancelOperation" /> method, 
            then <see cref="T:System.OperationCanceledException" /> will be thrown.
            <para>
            When the virtual file system is used in the FileServer component, then the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property
            in the handler of this event.
            </para></summary>
    </member>
    <member name="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.RenameSurrogate">
      <summary>
            Occurs before the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> renames instance of the <see cref="T:Rebex.IO.FileSystem.NodeBase" />.
            You can register event handler, 
            which overrides default implementation of the operation in the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> and provides own result for the operation.
            <para>
            When the virtual file system is used in the FileServer component, then the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property
            in the handler of this event.
            </para></summary>
    </member>
    <member name="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.RenameCompleted">
      <summary>
            Occurs after the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> renames instance of the <see cref="T:Rebex.IO.FileSystem.NodeBase" />.
            <para>
            When the virtual file system is used in the FileServer component, then the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property
            in the handler of this event.
            </para></summary>
    </member>
    <member name="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.MovePreview">
      <summary>
            Occurs before the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> moves instance of the <see cref="T:Rebex.IO.FileSystem.NodeBase" />.
            If you cancel the operation using the <see cref="M:Rebex.IO.FileSystem.Notifications.PreviewFileSystemOperationEventAgs.CancelOperation" /> method, 
            then <see cref="T:System.OperationCanceledException" /> will be thrown.
            <para>
            When the virtual file system is used in the FileServer component, then the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property
            in the handler of this event.
            </para></summary>
    </member>
    <member name="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.MoveSurrogate">
      <summary>
            Occurs before the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> moves instance of the <see cref="T:Rebex.IO.FileSystem.NodeBase" />.
            You can register event handler, 
            which overrides default implementation of the operation in the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> and provides own result for the operation.
            <para>
            When the virtual file system is used in the FileServer component, then the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property
            in the handler of this event.
            </para></summary>
    </member>
    <member name="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.MoveCompleted">
      <summary>
            Occurs after the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> moves instance of the <see cref="T:Rebex.IO.FileSystem.NodeBase" />.
            <para>
            When the virtual file system is used in the FileServer component, then the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property
            in the handler of this event.
            </para></summary>
    </member>
    <member name="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.CopyPreview">
      <summary>
            Occurs before the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> copies instance of the <see cref="T:Rebex.IO.FileSystem.NodeBase" />.
            If you cancel the operation using the <see cref="M:Rebex.IO.FileSystem.Notifications.PreviewFileSystemOperationEventAgs.CancelOperation" /> method, 
            then <see cref="T:System.OperationCanceledException" /> will be thrown.
            <para>
            When the virtual file system is used in the FileServer component, then the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property
            in the handler of this event.
            </para></summary>
    </member>
    <member name="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.CopySurrogate">
      <summary>
            Occurs before the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> copies instance of the <see cref="T:Rebex.IO.FileSystem.NodeBase" />.
            You can register event handler, 
            which overrides default implementation of the operation in the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> and provides own result for the operation.
            <para>
            When the virtual file system is used in the FileServer component, then the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property
            in the handler of this event.
            </para></summary>
    </member>
    <member name="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.CopyCompleted">
      <summary>
            Occurs after the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> copies instance of the <see cref="T:Rebex.IO.FileSystem.NodeBase" />.
            <para>
            When the virtual file system is used in the FileServer component, then the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property
            in the handler of this event.
            </para></summary>
    </member>
    <member name="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.DeletePreview">
      <summary>
            Occurs before the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> deletes instance of the <see cref="T:Rebex.IO.FileSystem.NodeBase" />.
            If you cancel the operation using the <see cref="M:Rebex.IO.FileSystem.Notifications.PreviewFileSystemOperationEventAgs.CancelOperation" /> method, 
            then <see cref="T:System.OperationCanceledException" /> will be thrown.
            <para>
            When the virtual file system is used in the FileServer component, then the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property
            in the handler of this event.
            </para></summary>
    </member>
    <member name="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.DeleteSurrogate">
      <summary>
            Occurs before the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> deletes instance of the <see cref="T:Rebex.IO.FileSystem.NodeBase" />.
            You can register event handler, 
            which overrides default implementation of the operation in the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> and provides own result for the operation.
            <para>
            When the virtual file system is used in the FileServer component, then the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property
            in the handler of this event.
            </para></summary>
    </member>
    <member name="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.DeleteCompleted">
      <summary>
            Occurs after the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> deletes instance of the <see cref="T:Rebex.IO.FileSystem.NodeBase" />.
            <para>
            When the virtual file system is used in the FileServer component, then the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property
            in the handler of this event.
            </para></summary>
    </member>
    <member name="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.SetContentPreview">
      <summary>
            Occurs before the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> updates <see cref="T:Rebex.IO.FileSystem.NodeContent" /> of the <see cref="T:Rebex.IO.FileSystem.NodeBase" />.
            If you cancel the operation using the <see cref="M:Rebex.IO.FileSystem.Notifications.PreviewFileSystemOperationEventAgs.CancelOperation" /> method, 
            then <see cref="T:System.OperationCanceledException" /> will be thrown.
            <para>
            This event is raised only for <see cref="T:Rebex.IO.FileSystem.NodeContent" /> created using the <see cref="M:Rebex.IO.FileSystem.NodeContent.CreateDelayedWriteContent(System.IO.Stream)" /> method.
            </para><para>
            When the virtual file system is used in the FileServer component, then the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property
            in the handler of this event.
            </para></summary>
    </member>
    <member name="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.SetContentSurrogate">
      <summary>
            Occurs before the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> updates <see cref="T:Rebex.IO.FileSystem.NodeContent" /> of the <see cref="T:Rebex.IO.FileSystem.NodeBase" />.
            You can register event handler, 
            which overrides default implementation of the operation in the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> and provides own result for the operation.
            <para>
            This event is raised only for <see cref="T:Rebex.IO.FileSystem.NodeContent" /> created using the <see cref="M:Rebex.IO.FileSystem.NodeContent.CreateDelayedWriteContent(System.IO.Stream)" /> method.
            </para><para>
            When the virtual file system is used in the FileServer component, then the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property
            in the handler of this event.
            </para></summary>
    </member>
    <member name="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.SetContentCompleted">
      <summary>
            Occurs before the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> updates <see cref="T:Rebex.IO.FileSystem.NodeContent" /> of the <see cref="T:Rebex.IO.FileSystem.NodeBase" />.
            <para><para>
            This event is raised only for <see cref="T:Rebex.IO.FileSystem.NodeContent" /> created using the <see cref="M:Rebex.IO.FileSystem.NodeContent.CreateDelayedWriteContent(System.IO.Stream)" /> method.
            </para>
            When the virtual file system is used in the FileServer component, then the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property
            in the handler of this event.
            </para></summary>
    </member>
    <member name="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.SaveContentPreview">
      <summary>
            Occurs before the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> updates <see cref="T:Rebex.IO.FileSystem.NodeContent" /> of the <see cref="T:Rebex.IO.FileSystem.NodeBase" />.
            If you cancel the operation using the <see cref="M:Rebex.IO.FileSystem.Notifications.PreviewFileSystemOperationEventAgs.CancelOperation" /> method, 
            then <see cref="T:System.OperationCanceledException" /> will be thrown.
            <para>
            This event is raised only for <see cref="T:Rebex.IO.FileSystem.NodeContent" /> created using the <see cref="M:Rebex.IO.FileSystem.NodeContent.CreateDelayedWriteContent(System.IO.Stream)" /> method.
            </para><para>
            When the virtual file system is used in the FileServer component, then the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property
            in the handler of this event.
            </para></summary>
    </member>
    <member name="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.SaveContentSurrogate">
      <summary>
            Occurs before the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> updates <see cref="T:Rebex.IO.FileSystem.NodeContent" /> of the <see cref="T:Rebex.IO.FileSystem.NodeBase" />.
            You can register event handler, 
            which overrides default implementation of the operation in the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> and provides own result for the operation.
            <para>
            This event is raised only for <see cref="T:Rebex.IO.FileSystem.NodeContent" /> created using the <see cref="M:Rebex.IO.FileSystem.NodeContent.CreateDelayedWriteContent(System.IO.Stream)" /> method.
            </para><para>
            When the virtual file system is used in the FileServer component, then the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property
            in the handler of this event.
            </para></summary>
    </member>
    <member name="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.SaveContentCompleted">
      <summary>
            Occurs before the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> updates <see cref="T:Rebex.IO.FileSystem.NodeContent" /> of the <see cref="T:Rebex.IO.FileSystem.NodeBase" />.
            <para>
            When the virtual file system is used in the FileServer component, then the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property
            in the handler of this event.
            <para>
            This event is raised only for <see cref="T:Rebex.IO.FileSystem.NodeContent" /> created using the <see cref="M:Rebex.IO.FileSystem.NodeContent.CreateDelayedWriteContent(System.IO.Stream)" /> method.
            </para></para></summary>
    </member>
    <member name="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.SetAttributesPreview">
      <summary>
            Occurs before the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> updates <see cref="T:Rebex.IO.FileSystem.NodeAttributes" /> of the <see cref="T:Rebex.IO.FileSystem.NodeBase" />.
            If you cancel the operation using the <see cref="M:Rebex.IO.FileSystem.Notifications.PreviewFileSystemOperationEventAgs.CancelOperation" /> method, 
            then <see cref="T:System.OperationCanceledException" /> will be thrown.
            <para>
            When the virtual file system is used in the FileServer component, then the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property
            in the handler of this event.
            </para></summary>
    </member>
    <member name="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.SetAttributesSurrogate">
      <summary>
            Occurs before the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> updates <see cref="T:Rebex.IO.FileSystem.NodeAttributes" /> of the <see cref="T:Rebex.IO.FileSystem.NodeBase" />.
            You can register event handler, 
            which overrides default implementation of the operation in the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> and provides own result for the operation.
            <para>
            When the virtual file system is used in the FileServer component, then the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property
            in the handler of this event.
            </para></summary>
    </member>
    <member name="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.SetAttributesCompleted">
      <summary>
            Occurs after the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> updates <see cref="T:Rebex.IO.FileSystem.NodeAttributes" /> of the <see cref="T:Rebex.IO.FileSystem.NodeBase" />.
            <para>
            When the virtual file system is used in the FileServer component, then the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property
            in the handler of this event.
            </para></summary>
    </member>
    <member name="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.SetTimeInfoPreview">
      <summary>
            Occurs before the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> updates <see cref="T:Rebex.IO.FileSystem.NodeTimeInfo" /> of the <see cref="T:Rebex.IO.FileSystem.NodeBase" />.
            If you cancel the operation using the <see cref="M:Rebex.IO.FileSystem.Notifications.PreviewFileSystemOperationEventAgs.CancelOperation" /> method, 
            then <see cref="T:System.OperationCanceledException" /> will be thrown.
            <para>
            When the virtual file system is used in the FileServer component, then the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property
            in the handler of this event.
            </para></summary>
    </member>
    <member name="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.SetTimeInfoSurrogate">
      <summary>
            Occurs before the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> updates <see cref="T:Rebex.IO.FileSystem.NodeTimeInfo" /> of the <see cref="T:Rebex.IO.FileSystem.NodeBase" />.
            You can register event handler, 
            which overrides default implementation of the operation in the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> and provides own result for the operation.
            <para>
            When the virtual file system is used in the FileServer component, then the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property
            in the handler of this event.
            </para></summary>
    </member>
    <member name="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.SetTimeInfoCompleted">
      <summary>
            Occurs after the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> updates <see cref="T:Rebex.IO.FileSystem.NodeTimeInfo" /> of the <see cref="T:Rebex.IO.FileSystem.NodeBase" />.
            <para>
            When the virtual file system is used in the FileServer component, then the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property
            in the handler of this event.
            </para></summary>
    </member>
    <member name="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.GetLengthPreview">
      <summary>
            Occurs before the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> returns length of the content of the <see cref="T:Rebex.IO.FileSystem.NodeBase" />.
            If you cancel the operation using the <see cref="M:Rebex.IO.FileSystem.Notifications.PreviewFileSystemOperationEventAgs.CancelOperation" /> method, 
            then <see cref="T:System.OperationCanceledException" /> will be thrown.
            <para>
            When the virtual file system is used in the FileServer component, then the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property
            in the handler of this event.
            </para></summary>
    </member>
    <member name="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.GetLengthSurrogate">
      <summary>
            Occurs before the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> returns length of the content of the <see cref="T:Rebex.IO.FileSystem.NodeBase" />.
            You can register event handler, 
            which overrides default implementation of the operation in the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> and provides own result for the operation.
            <para>
            When the virtual file system is used in the FileServer component, then the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property
            in the handler of this event.
            </para></summary>
    </member>
    <member name="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.GetLengthCompleted">
      <summary>
            Occurs after the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> returns length of the content of the <see cref="T:Rebex.IO.FileSystem.NodeBase" />.
            <para>
            When the virtual file system is used in the FileServer component, then the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property
            in the handler of this event.
            </para></summary>
    </member>
    <member name="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.GetAttributesPreview">
      <summary>
            Occurs before the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> returns <see cref="T:Rebex.IO.FileSystem.NodeAttributes" /> of the <see cref="T:Rebex.IO.FileSystem.NodeBase" />.
            If you cancel the operation using the <see cref="M:Rebex.IO.FileSystem.Notifications.PreviewFileSystemOperationEventAgs.CancelOperation" /> method, 
            then <see cref="T:System.OperationCanceledException" /> will be thrown.
            <para>
            When the virtual file system is used in the FileServer component, then the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property
            in the handler of this event.
            </para></summary>
    </member>
    <member name="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.GetAttributesSurrogate">
      <summary>
            Occurs before the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> returns <see cref="T:Rebex.IO.FileSystem.NodeAttributes" /> of the <see cref="T:Rebex.IO.FileSystem.NodeBase" />.
            You can register event handler, 
            which overrides default implementation of the operation in the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> and provides own result for the operation.
            <para>
            When the virtual file system is used in the FileServer component, then the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property
            in the handler of this event.
            </para></summary>
    </member>
    <member name="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.GetAttributesCompleted">
      <summary>
            Occurs after the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> returns <see cref="T:Rebex.IO.FileSystem.NodeAttributes" /> of the <see cref="T:Rebex.IO.FileSystem.NodeBase" />.
            <para>
            When the virtual file system is used in the FileServer component, then the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property
            in the handler of this event.
            </para></summary>
    </member>
    <member name="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.GetTimeInfoPreview">
      <summary>
            Occurs before the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> returns <see cref="T:Rebex.IO.FileSystem.NodeTimeInfo" /> of the <see cref="T:Rebex.IO.FileSystem.NodeBase" />.
            If you cancel the operation using the <see cref="M:Rebex.IO.FileSystem.Notifications.PreviewFileSystemOperationEventAgs.CancelOperation" /> method, 
            then <see cref="T:System.OperationCanceledException" /> will be thrown.
            <para>
            When the virtual file system is used in the FileServer component, then the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property
            in the handler of this event.
            </para></summary>
    </member>
    <member name="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.GetTimeInfoSurrogate">
      <summary>
            Occurs before the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> returns <see cref="T:Rebex.IO.FileSystem.NodeTimeInfo" /> of the <see cref="T:Rebex.IO.FileSystem.NodeBase" />.
            You can register event handler, 
            which overrides default implementation of the operation in the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> and provides own result for the operation.
            <para>
            When the virtual file system is used in the FileServer component, then the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property
            in the handler of this event.
            </para></summary>
    </member>
    <member name="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.GetTimeInfoCompleted">
      <summary>
            Occurs after the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> returns <see cref="T:Rebex.IO.FileSystem.NodeTimeInfo" /> of the <see cref="T:Rebex.IO.FileSystem.NodeBase" />.
            <para>
            When the virtual file system is used in the FileServer component, then the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property
            in the handler of this event.
            </para></summary>
    </member>
    <member name="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.GetChildrenPreview">
      <summary>
            Occurs before the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> returns children of <see cref="T:Rebex.IO.FileSystem.DirectoryNode" />.
            If you cancel the operation using the <see cref="M:Rebex.IO.FileSystem.Notifications.PreviewFileSystemOperationEventAgs.CancelOperation" /> method, 
            then <see cref="T:System.OperationCanceledException" /> will be thrown.
            <para>
            When the virtual file system is used in the FileServer component, then the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property
            in the handler of this event.
            </para></summary>
    </member>
    <member name="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.GetChildrenSurrogate">
      <summary>
            Occurs before the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> returns children of <see cref="T:Rebex.IO.FileSystem.DirectoryNode" />.
            You can register event handler, 
            which overrides default implementation of the operation in the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> and provides own result for the operation.
            <para>
            When the virtual file system is used in the FileServer component, then the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property
            in the handler of this event.
            </para></summary>
    </member>
    <member name="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.GetChildrenCompleted">
      <summary>
            Occurs after the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> returns children of <see cref="T:Rebex.IO.FileSystem.DirectoryNode" />.
            <para>
            When the virtual file system is used in the FileServer component, then the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property
            in the handler of this event.
            </para></summary>
    </member>
    <member name="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.GetContentPreview">
      <summary>
            Occurs before the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> returns <see cref="T:Rebex.IO.FileSystem.NodeContent" /> of the <see cref="T:Rebex.IO.FileSystem.NodeBase" />.
            If you cancel the operation using the <see cref="M:Rebex.IO.FileSystem.Notifications.PreviewFileSystemOperationEventAgs.CancelOperation" /> method, 
            then <see cref="T:System.OperationCanceledException" /> will be thrown.
            <para>
            When the virtual file system is used in the FileServer component, then the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property
            in the handler of this event.
            </para></summary>
    </member>
    <member name="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.GetContentSurrogate">
      <summary>
            Occurs before the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> returns <see cref="T:Rebex.IO.FileSystem.NodeContent" /> of the <see cref="T:Rebex.IO.FileSystem.NodeBase" />.
            You can register event handler, 
            which overrides default implementation of the operation in the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> and provides own result for the operation.
            <para>
            When the virtual file system is used in the FileServer component, then the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property
            in the handler of this event.
            </para></summary>
    </member>
    <member name="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.GetContentCompleted">
      <summary>
             Occurs before the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> returns <see cref="T:Rebex.IO.FileSystem.NodeContent" /> of the <see cref="T:Rebex.IO.FileSystem.NodeBase" />.
             <para>
             When the virtual file system is used in the FileServer component, then the server session,
             which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property
             in the handler of this event.
             </para></summary>
      <remarks>
             When the event handler provides a new value in the <see cref="P:Rebex.IO.FileSystem.Notifications.GetContentEventArgs.ResultContent" /> property,
             then the same handler is responsible for cleaning-up old resources and should call <see cref="M:Rebex.IO.FileSystem.NodeContent.Dispose" /> method on the instance of the <see cref="T:Rebex.IO.FileSystem.NodeContent" />
             returned from the <see cref="P:Rebex.IO.FileSystem.Notifications.GetContentEventArgs.ResultContent" /> property.
             Typical handler that replaces <see cref="T:Rebex.IO.FileSystem.NodeContent" /> has the following structure:
             <code>
             myFileSystemProvider.FileSystemNotifier.GetContentCompleted += (sender, args) =&gt;
             {
               //Dispose  original content
               args.ResultContent.Dispose();
            
               // Prepare new content
             
               //Replace content
               args.ResultContent = NodeContent.CreateImmediateWriteContent(new MemoryStream());
              };
             </code></remarks>
    </member>
    <member name="T:Rebex.IO.FileSystem.Notifications.FileSystemOperationEventArgs">
      <summary>
            Serves as a base class for events provided by <see cref="T:Rebex.IO.FileSystem.Notifications.FileSystemNotifier" />.
            </summary>
    </member>
    <member name="M:Rebex.IO.FileSystem.Notifications.FileSystemOperationEventArgs.MarkAsHandled">
      <summary>
            Marks the current file system operation as handled by the event handler.
            <b>If you directly or indirectly call this method in the event handler for any '*Surrogate' event, 
            then you are fully responsible for the implementation of the current file system operation. In this case the default logic for the file system operation in the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> will be ignored!</b></summary>
    </member>
    <member name="T:Rebex.IO.FileSystem.Notifications.GetAttributesEventArgs">
      <summary>
            Provides data for <see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.GetAttributesSurrogate" /> and <see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.GetAttributesCompleted" /> events.
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.Notifications.GetAttributesEventArgs.Node">
      <summary>
            Affected node
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.Notifications.GetAttributesEventArgs.ResultAttributes">
      <summary>
            Gets or sets the result of the current file system operation.
            <para>
            Default value in the <see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.GetAttributesSurrogate" /> event is <i>"new NodeAttributes(FileAttributes.Normal)"</i>.;
            </para></summary>
    </member>
    <member name="T:Rebex.IO.FileSystem.Notifications.GetChildrenEventArgs">
      <summary>
            Provides data for <see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.GetChildrenSurrogate" /> and
            <see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.GetChildrenCompleted" /> events.
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.Notifications.GetChildrenEventArgs.RequiredChildrenType">
      <summary>
            Required type(s) of the returned children.
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.Notifications.GetChildrenEventArgs.Node">
      <summary>
            Affected node. Parent of the requested children.
            <para>
            Typically you need to handle only directories.
            <code>
             if (e.Node.NodeType == NodeType.Directory)
             {
                //return children for the directory.
             }
            </code></para></summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.Notifications.GetChildrenEventArgs.ResultChildren">
      <summary>
            Gets or sets return value for the current file system operation.
            <para>
            Default value in the <see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.GetChildrenSurrogate" /> is null.
            </para></summary>
    </member>
    <member name="T:Rebex.IO.FileSystem.Notifications.GetContentEventArgs">
      <summary>
            Provides data for <see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.GetContentSurrogate" /> and
             <see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.GetContentCompleted" /> events.
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.Notifications.GetContentEventArgs.ContentParameters">
      <summary>
            Required properties of the returned <see cref="T:Rebex.IO.FileSystem.NodeContent" />.
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.Notifications.GetContentEventArgs.Node">
      <summary>
            Affected node.
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.Notifications.GetContentEventArgs.ResultContent">
      <summary>
            Gets or sets return value for the current file system operation.
            <para>
            Default value in the <see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.GetContentSurrogate" /> event is null.
            </para></summary>
    </member>
    <member name="T:Rebex.IO.FileSystem.Notifications.GetLengthEventArgs">
      <summary>
            Provides data for <see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.GetLengthSurrogate" /> and
            <see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.GetLengthCompleted" /> events.
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.Notifications.GetLengthEventArgs.Node">
      <summary>
            Affected node.
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.Notifications.GetLengthEventArgs.ResultLength">
      <summary>
            Gets or sets return value for the current file system operation.
            <para>
            Default value in the <see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.GetLengthSurrogate" /> event is <see cref="F:System.Int64.MinValue" />.
            </para></summary>
    </member>
    <member name="T:Rebex.IO.FileSystem.Notifications.GetNodeEventArgs">
      <summary>
            Provides data for <see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.GetNodeSurrogate" /> 
            and <see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.GetNodeCompleted" /> events.
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.Notifications.GetNodeEventArgs.Path">
      <summary>
            Path of the node to be returned.
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.Notifications.GetNodeEventArgs.ResultNode">
      <summary>
            Gets or sets return value for the current file system operation.
            <para>
            Default value in the <see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.GetNodeSurrogate" /> event is null.
            </para></summary>
    </member>
    <member name="T:Rebex.IO.FileSystem.Notifications.GetNodesEventArgs">
      <summary>
            Provides data for <see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.GetNodesSurrogate" /> 
            and <see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.GetNodesCompleted" /> events.
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.Notifications.GetNodesEventArgs.Paths">
      <summary>
            Paths of the nodes to be returned.
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.Notifications.GetNodesEventArgs.ResultNodes">
      <summary>
            Gets or sets return value for the current file system operation.
            <para>
            Default value in the <see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.GetNodesSurrogate" /> event is null.
            </para></summary>
    </member>
    <member name="T:Rebex.IO.FileSystem.Notifications.GetTimeInfoEventArgs">
      <summary>
            Provides data for <see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.GetTimeInfoSurrogate" /> and
            <see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.GetTimeInfoCompleted" /> events.
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.Notifications.GetTimeInfoEventArgs.Node">
      <summary>
            Affected node.
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.Notifications.GetTimeInfoEventArgs.ResultTimeInfo">
      <summary>
            Gets or sets return value for the current file system operation.
            <para>
            Default value in the <see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.GetTimeInfoSurrogate" /> event is null.
            </para></summary>
    </member>
    <member name="T:Rebex.IO.FileSystem.Notifications.PreviewCopyMoveEventArgs">
      <summary>
            Provides data for <see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.CopyPreview" /> and <see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.MovePreview" /> events.
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.Notifications.PreviewCopyMoveEventArgs.Node">
      <summary>
            Node to be copied/moved.
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.Notifications.PreviewCopyMoveEventArgs.NewParent">
      <summary>
            Expected parent of the new instance of the <see cref="T:Rebex.IO.FileSystem.NodeBase" /> when the copy/move operation will finish.
            </summary>
    </member>
    <member name="T:Rebex.IO.FileSystem.Notifications.PreviewFileSystemOperationEventAgs">
      <summary>
            Serves as a base class for cancelable events provided by <see cref="T:Rebex.IO.FileSystem.Notifications.FileSystemNotifier" />.
            </summary>
    </member>
    <member name="M:Rebex.IO.FileSystem.Notifications.PreviewFileSystemOperationEventAgs.#ctor">
      <summary>
            Initializes a new instance of the PreviewFileSystemOperationEventAgs class
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.Notifications.PreviewFileSystemOperationEventAgs.IsCanceled">
      <summary>
            Indicates whether the operation in the file system should be canceled.
            </summary>
    </member>
    <member name="M:Rebex.IO.FileSystem.Notifications.PreviewFileSystemOperationEventAgs.CancelOperation">
      <summary>
            Request cancellation of the operation in the file system.
            </summary>
    </member>
    <member name="T:Rebex.IO.FileSystem.Notifications.PreviewGetContentEventArgs">
      <summary>
            Provides data for <see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.GetContentPreview" /> event.
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.Notifications.PreviewGetContentEventArgs.ContentParameters">
      <summary>
            Required properties of the <see cref="T:Rebex.IO.FileSystem.NodeContent" />.
            </summary>
    </member>
    <member name="T:Rebex.IO.FileSystem.Notifications.PreviewGetNodeEventAgs">
      <summary>
            Provides data for <see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.GetNodePreview" /> event.
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.Notifications.PreviewGetNodeEventAgs.Path">
      <summary>
            Path of the node to be returned.
            </summary>
    </member>
    <member name="T:Rebex.IO.FileSystem.Notifications.PreviewGetNodesEventAgs">
      <summary>
            Provides data for <see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.GetNodesPreview" /> event.
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.Notifications.PreviewGetNodesEventAgs.NodePaths">
      <summary>
            Paths of the nodes to be returned.
            </summary>
    </member>
    <member name="T:Rebex.IO.FileSystem.Notifications.PreviewRenameEventArgs">
      <summary>
            Provides data for <see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.RenamePreview" /> event.
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.Notifications.PreviewRenameEventArgs.NewName">
      <summary>
            Proposed new name for the <see cref="P:Rebex.IO.FileSystem.Notifications.PreviewRenameEventArgs.Node" />.
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.Notifications.PreviewRenameEventArgs.Node">
      <summary>
            To be renamed <see cref="T:Rebex.IO.FileSystem.NodeBase" />.
            </summary>
    </member>
    <member name="T:Rebex.IO.FileSystem.Notifications.PreviewSaveContentEventArgs">
      <summary>
            Provides data for <see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.SaveContentPreview" /> event.
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.Notifications.PreviewSaveContentEventArgs.NewContent">
      <summary>
            New <see cref="T:Rebex.IO.FileSystem.NodeContent" /> for the <see cref="P:Rebex.IO.FileSystem.Notifications.PreviewSingleNodeOperationEventArgs.Node" />.
            </summary>
    </member>
    <member name="T:Rebex.IO.FileSystem.Notifications.PreviewSetAttributesEventArgs">
      <summary>
            Provides data for <see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.SetAttributesPreview" /> event.
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.Notifications.PreviewSetAttributesEventArgs.NewAttributes">
      <summary>
            Updated attributes of the <see cref="P:Rebex.IO.FileSystem.Notifications.PreviewSingleNodeOperationEventArgs.Node" />.
            </summary>
    </member>
    <member name="T:Rebex.IO.FileSystem.Notifications.PreviewSetContentEventArgs">
      <summary>
            Provides data for <see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.SetContentPreview" /> event.
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.Notifications.PreviewSetContentEventArgs.NewContent">
      <summary>
            New <see cref="T:Rebex.IO.FileSystem.NodeContent" /> for the <see cref="P:Rebex.IO.FileSystem.Notifications.PreviewSingleNodeOperationEventArgs.Node" />.
            </summary>
    </member>
    <member name="T:Rebex.IO.FileSystem.Notifications.PreviewSetTimeInfoEventArgs">
      <summary>
            Provides data for <see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.SetTimeInfoPreview" /> event.
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.Notifications.PreviewSetTimeInfoEventArgs.NewTimeInfo">
      <summary>
            Updated <see cref="T:Rebex.IO.FileSystem.NodeTimeInfo" /> for the <see cref="P:Rebex.IO.FileSystem.Notifications.PreviewSingleNodeOperationEventArgs.Node" />.
            </summary>
    </member>
    <member name="T:Rebex.IO.FileSystem.Notifications.PreviewSingleNodeOperationEventArgs">
      <summary>
            Provides data for <see cref="T:Rebex.IO.FileSystem.Notifications.FileSystemNotifier" /> events:
            <para><see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.CreatePreview" /></para><para><see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.ExistsNodePreview" /></para><para><see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.DeletePreview" /></para><para><see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.GetLengthPreview" /></para><para><see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.GetAttributesPreview" /></para><para><see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.GetTimeInfoPreview" /></para><para><see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.GetChildrenPreview" /></para></summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.Notifications.PreviewSingleNodeOperationEventArgs.Node">
      <summary>
            Affected node.
            </summary>
    </member>
    <member name="T:Rebex.IO.FileSystem.Notifications.RenameCompletedEventArgs">
      <summary>
            Provides data for <see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.RenameCompleted" /> event.
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.Notifications.RenameCompletedEventArgs.OriginalNode">
      <summary>
            Gets the original ("old") node which was renamed.
            </summary>
    </member>
    <member name="T:Rebex.IO.FileSystem.Notifications.RenameEventArgs">
      <summary>
            Provides data for <see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.RenameSurrogate" /> event.
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.Notifications.RenameEventArgs.OriginalNode">
      <summary>
            Gets the original (to be renamed node).
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.Notifications.RenameEventArgs.ResultNode">
      <summary>
            Gets or sets return value for the current file system operation.
            <para>
            Default value in the <see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.RenameSurrogate" /> event is null.
            </para></summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.Notifications.RenameEventArgs.NewName">
      <summary>
            Proposed new name for the <see cref="P:Rebex.IO.FileSystem.Notifications.RenameEventArgs.OriginalNode" /></summary>
    </member>
    <member name="T:Rebex.IO.FileSystem.Notifications.SaveContentEventArgs">
      <summary>
            Provides data for <see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.SaveContentSurrogate" /> event.
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.Notifications.SaveContentEventArgs.OriginalNode">
      <summary>
            Gets the original (to be updated) node.
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.Notifications.SaveContentEventArgs.Content">
      <summary>
            Updated <see cref="T:Rebex.IO.FileSystem.NodeContent" /> for the <see cref="P:Rebex.IO.FileSystem.Notifications.SaveContentEventArgs.OriginalNode" />.
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.Notifications.SaveContentEventArgs.ResultNode">
      <summary>
            Gets or sets return value for the current file system operation.
            <para>
            Default value in the <see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.SaveContentSurrogate" /> event is null.
            </para></summary>
    </member>
    <member name="T:Rebex.IO.FileSystem.Notifications.SetAttributesEventArgs">
      <summary>
            Provides data for <see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.SetAttributesSurrogate" /> event.
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.Notifications.SetAttributesEventArgs.OriginalNode">
      <summary>
            Gets the original (to be updated) node.
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.Notifications.SetAttributesEventArgs.Attributes">
      <summary>
            Updated attributes for the <see cref="P:Rebex.IO.FileSystem.Notifications.SetAttributesEventArgs.OriginalNode" />.
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.Notifications.SetAttributesEventArgs.ResultNode">
      <summary>
            Gets or sets return value for the current file system operation.
            <para>
            Default value in the <see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.SetAttributesSurrogate" /> event is null.
            </para></summary>
    </member>
    <member name="T:Rebex.IO.FileSystem.Notifications.SetContentEventArgs">
      <summary>
            Provides data for <see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.SetContentSurrogate" /> event.
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.Notifications.SetContentEventArgs.OriginalNode">
      <summary>
            Gets the original (to be updated) node.
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.Notifications.SetContentEventArgs.Content">
      <summary>
            Updated <see cref="T:Rebex.IO.FileSystem.NodeContent" /> for the <see cref="P:Rebex.IO.FileSystem.Notifications.SetContentEventArgs.OriginalNode" />.
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.Notifications.SetContentEventArgs.ResultNode">
      <summary>
            Gets or sets return value for the current file system operation.
            <para>
            Default value in the <see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.SetContentSurrogate" /> event is null.
            </para></summary>
    </member>
    <member name="T:Rebex.IO.FileSystem.Notifications.SetTimeInfoEventArgs">
      <summary>
            Provides data for <see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.SetTimeInfoSurrogate" /> event.
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.Notifications.SetTimeInfoEventArgs.OriginalNode">
      <summary>
            Gets the original (to be updated) node.
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.Notifications.SetTimeInfoEventArgs.TimeInfo">
      <summary>
            Updated <see cref="P:Rebex.IO.FileSystem.Notifications.SetTimeInfoEventArgs.TimeInfo" /> for the <see cref="P:Rebex.IO.FileSystem.Notifications.SetTimeInfoEventArgs.OriginalNode" />.
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.Notifications.SetTimeInfoEventArgs.ResultNode">
      <summary>
            Gets or sets return value for the current file system operation.
            <para>
            Default value in the <see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.SetTimeInfoSurrogate" /> event is null.
            </para></summary>
    </member>
    <member name="T:Rebex.IO.FileSystem.Notifications.SingleNodeOperationEventArgs">
      <summary>
            Provides data for <see cref="T:Rebex.IO.FileSystem.Notifications.FileSystemNotifier" /> events:
            <para><see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.CreateSurrogate" /></para><para><see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.CreateCompleted" /></para><para><see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.DeleteSurrogate" /></para><para><see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.DeleteCompleted" /></para><para><see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.SetContentCompleted" /></para><para><see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.SaveContentCompleted" /></para><para><see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.SetAttributesCompleted" /></para><para><see cref="E:Rebex.IO.FileSystem.Notifications.FileSystemNotifier.SetTimeInfoCompleted" /></para></summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.Notifications.SingleNodeOperationEventArgs.ResultNode">
      <summary>
            Gets or sets the result of the current file system operation.
            </summary>
    </member>
    <member name="T:Rebex.IO.FileSystem.ReadOnlyFileSystemProvider">
      <summary>
            Serves as the base class for read-only file system providers.
            <para><strong>
            When the virtual file system is used in the FileServer component, the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property.
            </strong></para></summary>
      <seealso cref="T:Rebex.IO.FileSystem.ReadWriteFileSystemProvider" />
      <seealso cref="T:Rebex.IO.FileSystem.Notifications.FileSystemNotifier" />
      <seealso cref="T:Rebex.IO.FileSystem.FileSystemProviderExtensions" />
    </member>
    <member name="F:Rebex.IO.FileSystem.ReadOnlyFileSystemProvider.DefaultDirectoryContentLength">
      <summary>
            Constant represents default length of the content of a <see cref="T:Rebex.IO.FileSystem.DirectoryNode" />.
            <para>
            The value of the constant is 0.
            </para></summary>
    </member>
    <member name="M:Rebex.IO.FileSystem.ReadOnlyFileSystemProvider.#ctor">
      <summary>
            Initializes a new instance of <see cref="T:Rebex.IO.FileSystem.ReadOnlyFileSystemProvider" /> with the <see cref="P:Rebex.IO.FileSystem.FileSystemProviderSettings.Default" /> settings.
            </summary>
    </member>
    <member name="M:Rebex.IO.FileSystem.ReadOnlyFileSystemProvider.#ctor(Rebex.IO.FileSystem.FileSystemProviderSettings)">
      <summary>
            Initializes a new instance of <see cref="T:Rebex.IO.FileSystem.ReadOnlyFileSystemProvider" /> with the <paramref name="fileSystemSettings" />.
            </summary>
      <param name="fileSystemSettings">File system settings</param>
    </member>
    <member name="P:Rebex.IO.FileSystem.ReadOnlyFileSystemProvider.Settings">
      <summary>
            Gets the file system settings which were used to create this instance.
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.ReadOnlyFileSystemProvider.Root">
      <summary>
            Gets the root directory of this instance.
            </summary>
    </member>
    <member name="P:Rebex.IO.FileSystem.ReadOnlyFileSystemProvider.OriginalSettings">
      <summary>
            Gets the original file system settings.
            </summary>
    </member>
    <member name="M:Rebex.IO.FileSystem.ReadOnlyFileSystemProvider.CreateChildFileSystem(Rebex.IO.FileSystem.NodePath)">
      <summary>
            Creates a child file system with the root path of <paramref name="directoryPath" />.
            </summary>
      <param name="directoryPath">Root path of the child file system.</param>
      <returns>Child file system with the root path of <paramref name="directoryPath" />.</returns>
    </member>
    <member name="M:Rebex.IO.FileSystem.ReadOnlyFileSystemProvider.GetTimeInfo(Rebex.IO.FileSystem.NodeBase)">
      <summary>
             Override this method to implement retrieval of <see cref="T:Rebex.IO.FileSystem.NodeTimeInfo" /> for the <paramref name="node" />.
             <para>
             Fill the following NodeTimeInfo properties:
             </para><para><b>CreationTime.</b></para><para><b>AccessTime.</b></para><para><b>LastWriteTime.</b></para><para><strong>
             When the virtual file system is used in the FileServer component, the server session,
             which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property.
             </strong></para></summary>
      <example>
        <code>
            protected override NodeTimeInfo GetTimeInfo(NodeBase node)
            {
              var fullPath = getFullPath(node.Path);
              var creationTime = File.GetCreationTime(fullPath);
              var lastAccessTime = File.GetLastAccessTime(fullPath);
              var lastWriteTime = File.GetLastWriteTime(fullPath);
              return new NodeTimeInfo(creationTime,
                  lastAccessTime,
                  lastWriteTime);
            }
             </code>
      </example>
      <param name="node">A <see cref="T:Rebex.IO.FileSystem.DirectoryNode" /> or a <see cref="T:Rebex.IO.FileSystem.FileNode" /> instance that represents the processed node.</param>
      <returns>
        <see cref="T:Rebex.IO.FileSystem.NodeTimeInfo" /> with the properties <see cref="P:Rebex.IO.FileSystem.NodeTimeInfo.CreationTime" />, <see cref="P:Rebex.IO.FileSystem.NodeTimeInfo.LastAccessTime" />
             and <see cref="P:Rebex.IO.FileSystem.NodeTimeInfo.LastWriteTime" /> filled with the values for the <paramref name="node" />.
             <para>
             All dates are in the UTC format.
             </para></returns>
    </member>
    <member name="M:Rebex.IO.FileSystem.ReadOnlyFileSystemProvider.GetChild(System.String,Rebex.IO.FileSystem.DirectoryNode)">
      <summary>
             Override this method to implement retrieval of <see cref="T:Rebex.IO.FileSystem.DirectoryNode" /> or <see cref="T:Rebex.IO.FileSystem.FileNode" /> 
             with the specified <paramref name="name" /> located in the specified <paramref name="parent" /> directory.
             <para><strong>
             When the virtual file system is used in the FileServer component, the server session,
             which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property.
             </strong></para></summary>
      <example>
        <code>
            protected override NodeBase GetChild(string name, DirectoryNode parent)
            {
              var fullChildPath = getFullPath(parent.Path.AddPathPart(name));
            
              if (File.Exists(fullChildPath))
              {
                return new FileNode(name, parent);
              }
            
              if (Directory.Exists(fullChildPath))
              {
                return new DirectoryNode(name, parent);
              }
            }
            
            return null;
             </code>
      </example>
      <param name="name">Name of the child node to be returned.</param>
      <param name="parent">Parent <see cref="T:Rebex.IO.FileSystem.DirectoryNode" /> of the requested child node.</param>
      <returns>
             A <see cref="T:Rebex.IO.FileSystem.DirectoryNode" /> or a <see cref="T:Rebex.IO.FileSystem.FileNode" /> if the child node exists; or null if it does not exist.
             </returns>
    </member>
    <member name="M:Rebex.IO.FileSystem.ReadOnlyFileSystemProvider.GetChildren(Rebex.IO.FileSystem.DirectoryNode,Rebex.IO.FileSystem.NodeType)">
      <summary>
             Override this method to implement getting a collection of <see cref="T:Rebex.IO.FileSystem.DirectoryNode" /> and/or <see cref="T:Rebex.IO.FileSystem.FileNode" /> objects 
             that are located in the <paramref name="parent" /> and 
             value of their property <see cref="P:Rebex.IO.FileSystem.NodeBase.NodeType" /> is contained in the <paramref name="nodeType" />.
             <para><strong>
             When the virtual file system is used in the FileServer component, the server session,
             which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property.
             </strong></para></summary>
      <example>
        <code>
            protected override IEnumerable &lt;NodeBase&gt; GetChildren(DirectoryNode parent, NodeType nodeType)
            {
              var parentPath = getFullPath(parent.Path);
              var retChildren = Enumerable.Empty&lt;NodeBase&gt;();
            
              if ((nodeType &amp; NodeType.Directory) == NodeType.Directory)
              {
                retChildren = retChildren.Union(Directory.EnumerateDirectories(parentPath)
                  .Select(dirPath =&gt; new DirectoryNode(getNodeName(dirPath), parent)));
              }
            
              if ((nodeType &amp; NodeType.File) == NodeType.File)
              {
                retChildren = retChildren.Union(Directory.GetFiles(parentPath)
                  .Select(filePath =&gt; new FileNode(getNodeName(filePath), parent)));
              }
            
              return retChildren;
            }
             </code>
      </example>
      <param name="parent">Parent <see cref="T:Rebex.IO.FileSystem.DirectoryNode" /> of the requested children.</param>
      <param name="nodeType">Required type(s) of the returned children.</param>
      <returns>A collection of <see cref="T:Rebex.IO.FileSystem.DirectoryNode" /> and/or <see cref="T:Rebex.IO.FileSystem.FileNode" /> objects 
             that are contained in the <paramref name="parent" /> and 
             value of their property <see cref="P:Rebex.IO.FileSystem.NodeBase.NodeType" /> is contained in the flag <paramref name="nodeType" />,
             or empty <see cref="T:System.Collections.Generic.IEnumerable`1" /> if the <paramref name="parent" /> does not have children.</returns>
    </member>
    <member name="M:Rebex.IO.FileSystem.ReadOnlyFileSystemProvider.Exists(Rebex.IO.FileSystem.NodePath,Rebex.IO.FileSystem.NodeType)">
      <summary>
             Override this method to implement verification of existence of a <see cref="T:Rebex.IO.FileSystem.FileNode" /> or <see cref="T:Rebex.IO.FileSystem.DirectoryNode" />.
             <para><strong>
             When the virtual file system is used in the FileServer component, the server session,
             which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property.
             </strong></para></summary>
      <example>
        <code>
            protected override bool Exists(NodePath path, NodeType nodeType)
            {
              var fullPath = getFullPath(path);
              if (nodeType == NodeType.File)
              {
                return File.Exists(fullPath);
              }
            
              if (nodeType == NodeType.Directory)
              {
                return Directory.Exists(fullPath);
              }
            
              return false;
            }
             </code>
      </example>
      <param name="path">
        <see cref="T:Rebex.IO.FileSystem.NodePath" /> to be verified.</param>
      <param name="nodeType">Required <see cref="P:Rebex.IO.FileSystem.NodeBase.NodeType" /> of the <see cref="T:Rebex.IO.FileSystem.NodeBase" />.</param>
      <returns>True if the <see cref="T:Rebex.IO.FileSystem.NodeBase" /> can be found in the <paramref name="path" /> 
             and its <see cref="P:Rebex.IO.FileSystem.NodeBase.NodeType" /> matches <paramref name="nodeType" />, otherwise false.</returns>
    </member>
    <member name="M:Rebex.IO.FileSystem.ReadOnlyFileSystemProvider.GetLength(Rebex.IO.FileSystem.NodeBase)">
      <summary>
             Override this method to implement retrieval of the length of the content for the <paramref name="node" />.
             <para>
             By default, this method is only called for files (instances of the class <see cref="T:Rebex.IO.FileSystem.FileNode" />). 
             To enable this method for directories (instances of <see cref="T:Rebex.IO.FileSystem.DirectoryNode" />), 
             add a new instance of <see cref="T:Rebex.IO.FileSystem.FileSystemProviderSettings" /> (with the property <see cref="P:Rebex.IO.FileSystem.FileSystemProviderSettings.EnableGetLengthMethodForDirectories" /> set to true)
             to the <see cref="M:Rebex.IO.FileSystem.ReadOnlyFileSystemProvider.#ctor(Rebex.IO.FileSystem.FileSystemProviderSettings)" /> constructor.
             </para><para><strong>
             When the virtual file system is used in the FileServer component, the server session,
             which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property.
             </strong></para></summary>
      <example>
        <code>
            protected override long GetLength(NodeBase node)
            {
              var fullPath = getFullPath(node.Path);
              return new FileInfo(fullPath).Length;
            }
             </code>
      </example>
      <param name="node">Processed node.</param>
      <returns>Length of the content for the <paramref name="node" />.</returns>
    </member>
    <member name="M:Rebex.IO.FileSystem.ReadOnlyFileSystemProvider.GetContent(Rebex.IO.FileSystem.NodeBase,Rebex.IO.FileSystem.NodeContentParameters)">
      <summary>
             Override this method to implement retrieval of the content for the <paramref name="node" />.
             <para>
             By default, this method is only called for files (instances of the class <see cref="T:Rebex.IO.FileSystem.FileNode" />). 
             To enable this method for directories (instances of <see cref="T:Rebex.IO.FileSystem.DirectoryNode" />), 
             add a new instance of <see cref="T:Rebex.IO.FileSystem.FileSystemProviderSettings" /> (with the property <see cref="P:Rebex.IO.FileSystem.FileSystemProviderSettings.EnableGetContentMethodForDirectories" /> set to true)
             to the <see cref="M:Rebex.IO.FileSystem.ReadOnlyFileSystemProvider.#ctor(Rebex.IO.FileSystem.FileSystemProviderSettings)" /> constructor.
             </para><para><strong>
             When the virtual file system is used in the FileServer component, the server session,
             which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property.
             </strong></para></summary>
      <example>
        <code>
            protected override NodeContent GetContent(NodeBase node, NodeContentParams contentRequest)
            {
              var fullPath = getFullPath(node.Path);
              if (contentRequest.AccesType == NodeContentAccess.Read)
              {
                var readOnlyStream = File.OpenRead(fullPath);
                return NodeContent.CreateReadOnlyContent(readOnlyStream);
              }
            
              var realFsAccessMode = contentRequest.AccesType == NodeContentAccess.Write
                ? FileAccess.Write
                : FileAccess.ReadWrite;
            
              var readWriteStream = File.Open(fullPath, FileMode.Open, realFsAccessMode);
              return NodeContent.CreateImmediateWriteContent(readWriteStream);
            }
             </code>
      </example>
      <param name="node">Processed node.</param>
      <param name="contentParameters">Required properties of the returned <see cref="T:Rebex.IO.FileSystem.NodeContent" />.</param>
      <returns>Content for the <paramref name="node" />.</returns>
    </member>
    <member name="M:Rebex.IO.FileSystem.ReadOnlyFileSystemProvider.GetAttributes(Rebex.IO.FileSystem.NodeBase)">
      <summary>
            Returns attributes (<see cref="T:Rebex.IO.FileSystem.NodeAttributes" />) for the <paramref name="node" />.
            <para><strong>
            When the virtual file system is used in the FileServer component, the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property.
            </strong></para></summary>
      <param name="node">Processed node.</param>
      <returns>Attributes (<see cref="T:Rebex.IO.FileSystem.NodeAttributes" />) for the <paramref name="node" />.</returns>
    </member>
    <member name="M:Rebex.IO.FileSystem.ReadOnlyFileSystemProvider.MakeNewDirectoryNode(System.String,Rebex.IO.FileSystem.DirectoryNode)">
      <summary>
            Factory method that creates a new instance of <see cref="T:Rebex.IO.FileSystem.DirectoryNode" /> with 
            <see cref="P:Rebex.IO.FileSystem.NodeBase.Name" /> initialized to <paramref name="name" /> and <see cref="P:Rebex.IO.FileSystem.NodeBase.Parent" /> 
            initialized to <paramref name="parentNode" />. 
            Classes derived from the <see cref="T:Rebex.IO.FileSystem.ReadOnlyFileSystemProvider" /> class or from the class <see cref="T:Rebex.IO.FileSystem.ReadWriteFileSystemProvider" /> 
            can override this method and returns instance of the more specific class derived from <see cref="T:Rebex.IO.FileSystem.DirectoryNode" />.
            <para><strong>
            When the virtual file system is used in the FileServer component, the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property.
            </strong></para></summary>
      <param name="name">Name of the new <see cref="T:Rebex.IO.FileSystem.DirectoryNode" />.</param>
      <param name="parentNode">Parent of the new <see cref="T:Rebex.IO.FileSystem.DirectoryNode" />.</param>
      <returns>A new instance of <see cref="T:Rebex.IO.FileSystem.DirectoryNode" />.</returns>
    </member>
    <member name="M:Rebex.IO.FileSystem.ReadOnlyFileSystemProvider.Content(System.IO.Stream)">
      <summary>
            Creates a new instance of <see cref="T:Rebex.IO.FileSystem.NodeContent" /> with the underlying <paramref name="contentStream" />.
            <para>
            Instances of <see cref="T:Rebex.IO.FileSystem.ReadOnlyFileSystemProvider" /> create new <see cref="T:Rebex.IO.FileSystem.NodeContent" /> 
            using the <see cref="M:Rebex.IO.FileSystem.NodeContent.CreateReadOnlyContent(System.IO.Stream)" /> method.
            </para><para>
            Instances of <see cref="T:Rebex.IO.FileSystem.ReadWriteFileSystemProvider" /> create new <see cref="T:Rebex.IO.FileSystem.NodeContent" /> 
            using the <see cref="M:Rebex.IO.FileSystem.NodeContent.CreateDelayedWriteContent(System.IO.Stream)" /> method.
            </para><para><strong>
            When the virtual file system is used in the FileServer component, the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property.
            </strong></para></summary>
      <param name="contentStream">
        <see cref="T:System.IO.Stream" /> to be returned within the new <see cref="T:Rebex.IO.FileSystem.NodeContent" /> instance.</param>
      <returns>A new instance of <see cref="T:Rebex.IO.FileSystem.NodeContent" /> with the underlying <paramref name="contentStream" />.</returns>
    </member>
    <member name="M:Rebex.IO.FileSystem.ReadOnlyFileSystemProvider.MakeNewFileNode(System.String,Rebex.IO.FileSystem.DirectoryNode)">
      <summary>
            Factory method that creates a new instance of <see cref="T:Rebex.IO.FileSystem.FileNode" /> that will have 
            <see cref="P:Rebex.IO.FileSystem.NodeBase.Name" /> initialized to <paramref name="name" /> and <see cref="P:Rebex.IO.FileSystem.NodeBase.Parent" /> 
            initialized to <paramref name="parentNode" />.
            Classes derived from the class <see cref="T:Rebex.IO.FileSystem.ReadOnlyFileSystemProvider" /> or from the class <see cref="T:Rebex.IO.FileSystem.ReadWriteFileSystemProvider" /> 
            can override this method and returns instance of the more specific class derived from <see cref="T:Rebex.IO.FileSystem.FileNode" />.
            <para><strong>
            When the virtual file system is used in the FileServer component, the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property.
            </strong></para></summary>
      <param name="name">Name of the new <see cref="T:Rebex.IO.FileSystem.FileNode" />.</param>
      <param name="parentNode">Parent of the new <see cref="T:Rebex.IO.FileSystem.DirectoryNode" />.</param>
      <returns>A new instance of <see cref="T:Rebex.IO.FileSystem.FileNode" />.</returns>
    </member>
    <member name="M:Rebex.IO.FileSystem.ReadOnlyFileSystemProvider.Dispose(System.Boolean)">
      <summary>
            Releases the resources used by the <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" />.
            </summary>
      <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
    </member>
    <member name="T:Rebex.IO.FileSystem.ReadWriteFileSystemProvider">
      <summary>
            Serves as the base class for read-write file system providers.
            <para><strong>
            When the virtual file system is used in the FileServer component, the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property.
            </strong></para></summary>
      <seealso cref="T:Rebex.IO.FileSystem.ReadOnlyFileSystemProvider" />
      <seealso cref="T:Rebex.IO.FileSystem.Notifications.FileSystemNotifier" />
      <see cref="T:Rebex.IO.FileSystem.FileSystemProviderExtensions" />
    </member>
    <member name="M:Rebex.IO.FileSystem.ReadWriteFileSystemProvider.#ctor(Rebex.IO.FileSystem.FileSystemProviderSettings)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.IO.FileSystem.ReadWriteFileSystemProvider" /> with the <paramref name="fileSystemSettings" />.
            </summary>
      <param name="fileSystemSettings">File system settings.</param>
    </member>
    <member name="M:Rebex.IO.FileSystem.ReadWriteFileSystemProvider.#ctor">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.IO.FileSystem.ReadWriteFileSystemProvider" /> with the <see cref="P:Rebex.IO.FileSystem.FileSystemProviderSettings.Default" /> settings.
            </summary>
    </member>
    <member name="M:Rebex.IO.FileSystem.ReadWriteFileSystemProvider.CreateDirectory(Rebex.IO.FileSystem.DirectoryNode,Rebex.IO.FileSystem.DirectoryNode)">
      <summary>
             Override this method to implement <see cref="T:Rebex.IO.FileSystem.DirectoryNode" /> creation.
             <para><strong>
             When the virtual file system is used in the FileServer component, the server session,
             which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property.
             </strong></para></summary>
      <example>
        <code>
            protected override DirectoryNode CreateDirectory(DirectoryNode parent, DirectoryNode child)
            {
              var newDirectoryFullPath = getFullPath(child.Path);
              Directory.CreateDirectory(newDirectoryFullPath);
              return child;
            }
             </code>
      </example>
      <param name="parent">Parent <see cref="T:Rebex.IO.FileSystem.DirectoryNode" /> that contains <paramref name="child" />.</param>
      <param name="child">To be created <see cref="T:Rebex.IO.FileSystem.DirectoryNode" />.</param>
      <returns>An up-to-date instance of <see cref="T:Rebex.IO.FileSystem.DirectoryNode" /> which represents the created <paramref name="child" />. 
             If the method did not change anything important for the current representation of the node, you can return the <paramref name="child" /> argument;
             otherwise you can create a new instance of <see cref="T:Rebex.IO.FileSystem.DirectoryNode" />.
             </returns>
    </member>
    <member name="M:Rebex.IO.FileSystem.ReadWriteFileSystemProvider.CreateFile(Rebex.IO.FileSystem.DirectoryNode,Rebex.IO.FileSystem.FileNode)">
      <summary>
             Override this method to implement <see cref="T:Rebex.IO.FileSystem.FileNode" /> creation.
             <para><strong>
             When the virtual file system is used in the FileServer component, the server session,
             which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property.
             </strong></para></summary>
      <example>
        <code>
            protected override FileNode CreateFile(DirectoryNode parent, FileNode child)
            {
              var newFileFullPath = getFullPath(child.Path);
              File.Create(newFileFullPath).Close();
            
              return child;
            }
             </code>
      </example>
      <param name="parent">Parent <see cref="T:Rebex.IO.FileSystem.DirectoryNode" /> that contains <paramref name="child" />.</param>
      <param name="child">To be created <see cref="T:Rebex.IO.FileSystem.FileNode" />.</param>
      <returns>An up-to-date instance of <see cref="T:Rebex.IO.FileSystem.FileNode" /> which represents the created <paramref name="child" />. 
             If the method did not change anything important for the current representation of the node, you can return the <paramref name="child" /> argument;
             otherwise you can create a new instance of <see cref="T:Rebex.IO.FileSystem.FileNode" />.
             </returns>
    </member>
    <member name="M:Rebex.IO.FileSystem.ReadWriteFileSystemProvider.Delete(Rebex.IO.FileSystem.NodeBase)">
      <summary>
             Override this method to implement <see cref="T:Rebex.IO.FileSystem.DirectoryNode" /> and <see cref="T:Rebex.IO.FileSystem.FileNode" /> deletion.
             <para><strong>
             When the virtual file system is used in the FileServer component, the server session,
             which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property.
             </strong></para></summary>
      <example>
        <code>
            protected override NodeBase Delete(NodeBase node)
            {
              var toDeletePath = getFullPath(node.Path);
              if (node.IsDirectory)
              {
                Directory.Delete(toDeletePath);
              }
              else
              {
                File.Delete(toDeletePath);
              }
              return node;
            }
             </code>
      </example>
      <param name="node">A <see cref="T:Rebex.IO.FileSystem.DirectoryNode" /> or <see cref="T:Rebex.IO.FileSystem.FileNode" /> to be deleted.</param>
      <returns>Up-to-date instance of <see cref="T:Rebex.IO.FileSystem.FileNode" /> or <see cref="T:Rebex.IO.FileSystem.DirectoryNode" /> which represents the deleted <paramref name="node" />.
             If the method did not change anything important for the current representation of the node, you can return the <paramref name="node" /> argument;
             otherwise you can create a new instance of <see cref="T:Rebex.IO.FileSystem.DirectoryNode" /> or <see cref="T:Rebex.IO.FileSystem.FileNode" />.
             </returns>
    </member>
    <member name="M:Rebex.IO.FileSystem.ReadWriteFileSystemProvider.Rename(Rebex.IO.FileSystem.NodeBase,System.String)">
      <summary>
             Override this method to implement renaming a <see cref="T:Rebex.IO.FileSystem.DirectoryNode" />/<see cref="T:Rebex.IO.FileSystem.FileNode" />.
             <para><strong>
             When the virtual file system is used in the FileServer component, the server session,
             which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property.
             </strong></para></summary>
      <example>
        <code>
            protected override NodeBase Rename(NodeBase node, string newName)
            {
              var oldPath = getFullPath(node.Path);
              var newPath = getFullPath(node.Path.ParentPath.AddPathPart(newName));
              if (node.IsDirectory)
              {
                Directory.Move(oldPath, newPath);
                return new DirectoryNode(newName, node.Parent);
              }
            
              File.Move(oldPath, newPath);
              return new FileNode(newName, node.Parent);
            
            }
             </code>
      </example>
      <param name="node">A <see cref="T:Rebex.IO.FileSystem.DirectoryNode" /> or <see cref="T:Rebex.IO.FileSystem.FileNode" /> to be renamed.</param>
      <param name="newName">New <paramref name="node" /> name.</param>
      <returns>Up-to-date instance of <see cref="T:Rebex.IO.FileSystem.FileNode" /> or <see cref="T:Rebex.IO.FileSystem.DirectoryNode" /> which represents the renamed <paramref name="node" />.
             <para><b>Returned instance should have the <see cref="P:Rebex.IO.FileSystem.NodeBase.Name" /> property set to <paramref name="newName" />.</b></para></returns>
    </member>
    <member name="M:Rebex.IO.FileSystem.ReadWriteFileSystemProvider.SaveContent(Rebex.IO.FileSystem.NodeBase,Rebex.IO.FileSystem.NodeContent)">
      <summary>
            Override this method to implement a save content functionality for <see cref="T:Rebex.IO.FileSystem.FileNode" /> and <see cref="T:Rebex.IO.FileSystem.DirectoryNode" />.
            <para>
            By default, this method is only called for files (instances of the class <see cref="T:Rebex.IO.FileSystem.FileNode" />). 
            To enable this method for directories (instances of <see cref="T:Rebex.IO.FileSystem.DirectoryNode" />), 
            add a new instance of <see cref="T:Rebex.IO.FileSystem.FileSystemProviderSettings" /> (with the property <see cref="P:Rebex.IO.FileSystem.FileSystemProviderSettings.EnableGetContentMethodForDirectories" /> set to true)
            to the <see cref="M:Rebex.IO.FileSystem.ReadWriteFileSystemProvider.#ctor(Rebex.IO.FileSystem.FileSystemProviderSettings)" /> constructor.
            </para><para>
            If the instance of the <see cref="T:Rebex.IO.FileSystem.NodeContent" /> returned from the method <see cref="M:Rebex.IO.FileSystem.ReadOnlyFileSystemProvider.GetContent(Rebex.IO.FileSystem.NodeBase,Rebex.IO.FileSystem.NodeContentParameters)" /> has been created using the method <see cref="T:Rebex.IO.FileSystem.NodeContent" />, then method <see cref="M:Rebex.IO.FileSystem.ReadWriteFileSystemProvider.SaveContent(Rebex.IO.FileSystem.NodeBase,Rebex.IO.FileSystem.NodeContent)" /><b>IS NOT CALLED</b>.
            </para><para><strong>
            When the virtual file system is used in the FileServer component, the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property.
            </strong></para></summary>
      <param name="node">To be updated node.</param>
      <param name="content">New content for the <paramref name="node" />.</param>
      <returns>Up-to-date instance of <see cref="T:Rebex.IO.FileSystem.DirectoryNode" /> or <see cref="T:Rebex.IO.FileSystem.FileNode" /> which represents the updated <paramref name="node" />. 
            If the method did not change anything important for the current representation of the node, you can return the <paramref name="node" /> argument;
            otherwise you can create a new instance of <see cref="T:Rebex.IO.FileSystem.DirectoryNode" /> or <see cref="T:Rebex.IO.FileSystem.FileNode" />.
            </returns>.
        </member>
    <member name="M:Rebex.IO.FileSystem.ReadWriteFileSystemProvider.SetTimeInfo(Rebex.IO.FileSystem.NodeBase,Rebex.IO.FileSystem.NodeTimeInfo)">
      <summary>
             Override this method to implement time info updating functionality for <see cref="T:Rebex.IO.FileSystem.FileNode" /> and <see cref="T:Rebex.IO.FileSystem.DirectoryNode" />.
             <para><strong>
             When the virtual file system is used in the FileServer component, the server session,
             which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property.
             </strong></para></summary>
      <example>
        <code>
            protected override NodeBase SetTimeInfo(NodeBase node, NodeTimeInfo newTimeInfo)
            {
              var fullNodePath = getFullPath(node.Path);
              var retNode = node;
              
              if (node.IsFile)
              {
                  File.SetCreationTimeUtc(fullNodePath, newTimeInfo.CreationTime);
                  File.SetLastAccessTimeUtc(fullNodePath, newTimeInfo.LastAccessTime);
                  File.SetLastWriteTimeUtc(fullNodePath, newTimeInfo.LastWriteTime);
                  retNode = new FileNode(node.Name, node.Parent, newTimeInfo, node.Attributes);
              }
             
              if (node.IsDirectory)
              {
                Directory.SetCreationTimeUtc(fullNodePath, newTimeInfo.CreationTime);
                Directory.SetLastAccessTimeUtc(fullNodePath, newTimeInfo.LastAccessTime);
                Directory.SetLastWriteTimeUtc(fullNodePath, newTimeInfo.LastWriteTime);
                retNode = new DirectoryNode(node.Name, node.Parent, newTimeInfo, node.Attributes);
              }
            
              return retNode;
            }
            
             </code>
      </example>
      <param name="node">To be updated a <see cref="T:Rebex.IO.FileSystem.FileNode" /> or <see cref="T:Rebex.IO.FileSystem.DirectoryNode" />.</param>
      <param name="newTimeInfo">Updated <see cref="T:Rebex.IO.FileSystem.NodeTimeInfo" /> for the <paramref name="node" />.</param>
      <returns>Up-to-date instance of <see cref="T:Rebex.IO.FileSystem.DirectoryNode" /> or <see cref="T:Rebex.IO.FileSystem.FileNode" /> which represents the updated <paramref name="node" />. 
             If the method did not change anything important for the current representation of the node, you can return the <paramref name="node" /> argument;
             otherwise you can create a new instance of <see cref="T:Rebex.IO.FileSystem.DirectoryNode" /> or <see cref="T:Rebex.IO.FileSystem.FileNode" />.
             </returns>.
        </member>
    <member name="M:Rebex.IO.FileSystem.ReadWriteFileSystemProvider.SetAttributes(Rebex.IO.FileSystem.NodeBase,Rebex.IO.FileSystem.NodeAttributes)">
      <summary>
              Override this method to implement a attribute updating functionality for <see cref="T:Rebex.IO.FileSystem.FileNode" /> and <see cref="T:Rebex.IO.FileSystem.DirectoryNode" />.
              <para><b>Default implementation do nothing and returns <paramref name="node" />.</b></para><para><strong>
             When the virtual file system is used in the FileServer component, the server session,
             which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property.
             </strong></para></summary>
      <example>
        <code>
            protected override NodeBase SetAttributes(NodeBase node, NodeAttributes attributes)
            {
              var fullNodePath = getFullPath(node.Path);
              if (node.IsFile)
              {
                File.SetAttributes(fullNodePath, attributes.FileAttributes);
                return new FileNode(node.Name, node.Parent, node.TimeInfo, attributes);
              }
              return node;
            }
              </code>
      </example>
      <param name="node">To be updated a <see cref="T:Rebex.IO.FileSystem.FileNode" /> or <see cref="T:Rebex.IO.FileSystem.DirectoryNode" />.</param>
      <param name="attributes">Updated <see cref="T:Rebex.IO.FileSystem.NodeAttributes" /> for the <paramref name="node" />.</param>
      <returns>Up-to-date instance of <see cref="T:Rebex.IO.FileSystem.DirectoryNode" /> or <see cref="T:Rebex.IO.FileSystem.FileNode" /> which represents the updated <paramref name="node" />. 
              If the method did not change anything important for the current representation of the node, you can return the <paramref name="node" /> argument;
              otherwise you can create a new instance of <see cref="T:Rebex.IO.FileSystem.DirectoryNode" /> or <see cref="T:Rebex.IO.FileSystem.FileNode" />.
              </returns>.
        </member>
    <member name="M:Rebex.IO.FileSystem.ReadWriteFileSystemProvider.Move(Rebex.IO.FileSystem.NodeBase,Rebex.IO.FileSystem.DirectoryNode)">
      <summary>
             Override this method to implement moving a <see cref="T:Rebex.IO.FileSystem.DirectoryNode" />/<see cref="T:Rebex.IO.FileSystem.FileNode" />.
            <para><strong>
            When the virtual file system is used in the FileServer component, the server session,
            which contains information about the user and the active connection, can be accessed using <see cref="P:Rebex.Net.Servers.ServerSession.Current" /> property.
            </strong></para></summary>
      <param name="toBeMovedNode">To be moved node.</param>
      <param name="targetDirectory">Target directory.</param>
      <returns>An up-to-date instance of <see cref="T:Rebex.IO.FileSystem.DirectoryNode" /> or <see cref="T:Rebex.IO.FileSystem.FileNode" /> which represents the moved <paramref name="toBeMovedNode" />. </returns>
    </member>
    <member name="T:Rebex.IO.VDirectory">
      <summary>
             This class contains static methods that work with virtual file system directories.
             This class provides methods that are functionally similar to the standard .NET <see cref="T:System.IO.Directory" /> methods.
             </summary>
      <example>
        <code>
             //Create a built-in or custom VFS provider 
            var memoryProvider = new MemoryFileSystemProvider()
             //Save the root path
            var memoryProviderRootPath = memoryProvider.GetRootVDirectoryInfo().FullName;
             //Create new directory 'Data' in the root directory
            VDirectory.CreateDirectory(Path.Combine(memoryProviderRootPath, "Data"));
             </code>
      </example>
      <seealso cref="T:Rebex.IO.VDirectoryInfo" />
      <seealso cref="T:Rebex.IO.VFileInfo" />
      <seealso cref="T:Rebex.IO.VFile" />
      <seealso cref="T:Rebex.IO.FileSystem.MemoryFileSystemProvider" />
      <seealso cref="T:Rebex.IO.FileSystem.LocalFileSystemProvider" />
      <seealso cref="T:Rebex.IO.FileSystem.MountCapableFileSystemProvider" />
      <seealso cref="T:Rebex.IO.FileSystem.ReadWriteFileSystemProvider" />
      <seealso cref="T:Rebex.IO.FileSystem.ReadOnlyFileSystemProvider" />
    </member>
    <member name="M:Rebex.IO.VDirectory.CreateDirectory(System.String)">
      <summary>
            Method creates a directory denoted by the <paramref name="path" />. Any non-existent parent directory on the <paramref name="path" /> is created as well.
            </summary>
      <param name="path">The path to the directory that should be created.</param>
      <returns>A new instance of the <see cref="T:Rebex.IO.VDirectoryInfo" /> that represents created directory.</returns>
    </member>
    <member name="M:Rebex.IO.VDirectory.Delete(System.String)">
      <summary>
            Deletes a directory identified by the <paramref name="path" />.
            </summary>
      <param name="path">The path of the directory that should be deleted.</param>
      <remarks>Method deletes only an empty directory. When a directory is not empty then <see cref="T:System.IO.IOException" /> is thrown.</remarks>
    </member>
    <member name="M:Rebex.IO.VDirectory.Delete(System.String,System.Boolean)">
      <summary>
            Deletes a directory identified by the <paramref name="path" />.
            </summary>
      <param name="path">The path to the directory that should be deleted.</param>
      <param name="recursive">
            When the argument is true then this method deletes all files and directories in the directory recursively.
            When the argument is false and a directory is not empty then this method throws the <see cref="T:System.IO.IOException" />.
            </param>
    </member>
    <member name="M:Rebex.IO.VDirectory.EnumerateDirectories(System.String)">
      <summary>
            Returns an enumerator that yields full paths to directories that are located in the directory identified by the <paramref name="path" />.
            </summary>
      <param name="path">The path to the directory that contains directories that should be returned.</param>
      <returns>An enumerator that yields directories located in the directory identified by the <paramref name="path" />.</returns>
    </member>
    <member name="M:Rebex.IO.VDirectory.EnumerateDirectories(System.String,System.String)">
      <summary>
            Returns an enumerator that yields full paths to directories
            that are located in the directory identified by the <paramref name="path" />
            and their name matches the given <paramref name="searchPattern" />.
            </summary>
      <param name="path">The path to the directory that contains directories that should be returned.</param>
      <param name="searchPattern">The search pattern to which the name of the returned directory must conform. Search patterns may include '?' and '*' wildcards.</param>
      <returns>
            An enumerator that yields directories located in the directory identified by the <paramref name="path" />
            and their name matches the given <paramref name="searchPattern" />.
            </returns>
    </member>
    <member name="M:Rebex.IO.VDirectory.EnumerateDirectories(System.String,System.String,System.IO.SearchOption)">
      <summary>
             Returns an enumerator that yields full paths to directories
             that are located in the directory identified by the <paramref name="path" />
             and their name matches the given <paramref name="searchPattern" />.
             When the <paramref name="searchPattern" /> has value <see cref="F:System.IO.SearchOption.AllDirectories" /> then this method returns all subdirectories recursively;
             otherwise returns only directories on the first level of the hierarchy.
             </summary>
      <param name="path">The path to the directory that contains directories that should be returned.</param>
      <param name="searchPattern">The search pattern to which the name of the returned directory must conform. Search patterns may include '?' and '*' wildcards.</param>
      <param name="searchOption">When the searchOption has value <see cref="F:System.IO.SearchOption.AllDirectories" /> then this method returns all subdirectories recursively;
             otherwise returns only directories on the first level of the hierarchy.
            </param>
      <returns>
             An enumerator that yields directories located in the directory identified by the <paramref name="path" />
             and their name matches the given <paramref name="searchPattern" />.
             </returns>
    </member>
    <member name="M:Rebex.IO.VDirectory.EnumerateFiles(System.String)">
      <summary>
            Returns an enumerator that yields full paths to files that are located in the directory identified by the <paramref name="path" />.
            </summary>
      <param name="path">The path to the directory that contains files that should be returned.</param>
      <returns>An enumerator that yields files located in the directory identified by the <paramref name="path" />.</returns>
    </member>
    <member name="M:Rebex.IO.VDirectory.EnumerateFiles(System.String,System.String)">
      <summary>
            Returns an enumerator that yields full paths to files
            that are located in the directory identified by the <paramref name="path" />
            and their name matches the given <paramref name="searchPattern" />.
            </summary>
      <param name="path">The path to the directory that contains files that should be returned.</param>
      <param name="searchPattern">The search pattern to which the name of the returned file must conform. Search patterns may include '?' and '*' wildcards.</param>
      <returns>
            An enumerator that yields files located in the directory identified by the <paramref name="path" />
            and their name matches the given <paramref name="searchPattern" />.
            </returns>
    </member>
    <member name="M:Rebex.IO.VDirectory.EnumerateFiles(System.String,System.String,System.IO.SearchOption)">
      <summary>
             Returns an enumerator that yields full paths to files
             that are located in the directory identified by the <paramref name="path" />
             and their name matches the given <paramref name="searchPattern" />.
             When the <paramref name="searchPattern" /> has value <see cref="F:System.IO.SearchOption.AllDirectories" /> then this method returns all files recursively;
             otherwise returns only files on the first level of the hierarchy.
             </summary>
      <param name="path">The path to the directory that contains files that should be returned.</param>
      <param name="searchPattern">The search pattern to which the name of the returned file must conform. Search patterns may include ? and * wildcards.</param>
      <param name="searchOption">When the searchOption has value <see cref="F:System.IO.SearchOption.AllDirectories" /> then this method returns all files recursively;
             otherwise returns only files on the first level of the hierarchy.
            </param>
      <returns>
             An enumerator that yields files located in the directory identified by the <paramref name="path" />
             and their name matches the given <paramref name="searchPattern" />.
             </returns>
    </member>
    <member name="M:Rebex.IO.VDirectory.EnumerateFileSystemEntries(System.String)">
      <summary>
            Returns an enumerator that yields full paths to file system entries that are located in the directory identified by the <paramref name="path" />.
            </summary>
      <param name="path">The path to the directory that contains file system entries that should be returned.</param>
      <returns>An enumerator that yields file system entries located in the directory identified by the <paramref name="path" />.</returns>
    </member>
    <member name="M:Rebex.IO.VDirectory.EnumerateFileSystemEntries(System.String,System.String)">
      <summary>
            Returns an enumerator that yields full paths to file system entries
            that are located in the directory identified by the <paramref name="path" />
            and their name matches the given <paramref name="searchPattern" />.
            </summary>
      <param name="path">The path to the directory that contains file system entries that should be returned.</param>
      <param name="searchPattern">The search pattern to which the name of the returned file system entry must conform. Search patterns may include '?' and '*' wildcards.</param>
      <returns>
            An enumerator that yields file system entries located in the directory identified by the <paramref name="path" />
            and their name matches the given <paramref name="searchPattern" />.
            </returns>
    </member>
    <member name="M:Rebex.IO.VDirectory.EnumerateFileSystemEntries(System.String,System.String,System.IO.SearchOption)">
      <summary>
             Returns an enumerator that yields full paths to file system entries
             that are located in the directory identified by the <paramref name="path" />
             and their name matches the given <paramref name="searchPattern" />.
             When the <paramref name="searchPattern" /> has value <see cref="F:System.IO.SearchOption.AllDirectories" /> then this method returns all file system entries recursively;
             otherwise returns only file system entries on the first level of the hierarchy.
             </summary>
      <param name="path">The path to the directory that contains file system entries that should be returned.</param>
      <param name="searchPattern">The search pattern to which the name of the returned file system entry must conform. Search patterns may include '?' and '*' wildcards.</param>
      <param name="searchOption">When the searchOption has value <see cref="F:System.IO.SearchOption.AllDirectories" /> then this method returns all file system entries recursively;
             otherwise returns only file system entry on the first level of the hierarchy.
            </param>
      <returns>
             An enumerator that yields file system entries located in the directory identified by the <paramref name="path" />
             and their name matches the given <paramref name="searchPattern" />.
             </returns>
    </member>
    <member name="M:Rebex.IO.VDirectory.Exists(System.String)">
      <summary>
            Method returns true when a directory exists on the given <paramref name="path" />; otherwise returns false.
            </summary>
      <param name="path">The path of the directory, which existence is checked.</param>
      <returns>True when a directory exists on the given <paramref name="path" />; otherwise returns false.</returns>
    </member>
    <member name="M:Rebex.IO.VDirectory.GetCreationTime(System.String)">
      <summary>
            Method returns the creation date and time of the directory.
            </summary>
      <param name="path">The path of the directory, for which creation date and time are returned.</param>
      <returns>The creation date and time of the directory.</returns>
    </member>
    <member name="M:Rebex.IO.VDirectory.GetCreationTimeUtc(System.String)">
      <summary>
            Method returns the creation date and time of the directory. The time is expressed in the UTC format.
            </summary>
      <param name="path">The path of the directory, for which creation date and time are returned.</param>
      <returns>The creation date and time of the directory.</returns>
    </member>
    <member name="M:Rebex.IO.VDirectory.GetLastAccessTime(System.String)">
      <summary>
            Method returns the last access date and time of the directory.
            </summary>
      <param name="path">The path of the directory, for which last access date and time are returned.</param>
      <returns>The last access date and time of the directory.</returns>
    </member>
    <member name="M:Rebex.IO.VDirectory.GetLastAccessTimeUtc(System.String)">
      <summary>
            Method returns the last access date and time of the directory. The time is expressed in the UTC format.
            </summary>
      <param name="path">The path of the directory, for which last access date and time are returned.</param>
      <returns>The last access date and time of the directory.</returns>
    </member>
    <member name="M:Rebex.IO.VDirectory.GetLastWriteTime(System.String)">
      <summary>
            Method returns the last write date and time of the directory.
            </summary>
      <param name="path">The path of the directory, for which the last write date and time are returned.</param>
      <returns>The last write date and time of the directory.</returns>
    </member>
    <member name="M:Rebex.IO.VDirectory.GetLastWriteTimeUtc(System.String)">
      <summary>
            Method returns the last write date and time of the directory. The time is expressed in the UTC format.
            </summary>
      <param name="path">The path of the directory, for which last write date and time are returned.</param>
      <returns>The last write date and time of the directory.</returns>
    </member>
    <member name="M:Rebex.IO.VDirectory.SetCreationTime(System.String,System.DateTime)">
      <summary>
            Method sets the creation date and time of the directory.
            </summary>
      <param name="path">The path of the directory</param>
      <param name="creationTime">The creation date and time of the directory.</param>
    </member>
    <member name="M:Rebex.IO.VDirectory.SetCreationTimeUtc(System.String,System.DateTime)">
      <summary>
            Method sets the creation date and time of the directory.
            </summary>
      <param name="path">The path of the directory</param>
      <param name="creationTimeUtc">The creation date and time, in the UTC format, of the directory. </param>
    </member>
    <member name="M:Rebex.IO.VDirectory.SetLastAccessTime(System.String,System.DateTime)">
      <summary>
            Method sets the last access date and time of the directory.
            </summary>
      <param name="path">The path of the directory</param>
      <param name="lastAccessTime">The last access date and time of the directory.</param>
    </member>
    <member name="M:Rebex.IO.VDirectory.SetLastAccessTimeUtc(System.String,System.DateTime)">
      <summary>
            Method sets the last access date and time of the directory.
            </summary>
      <param name="path">The path of the directory</param>
      <param name="lastAccessTimeUtc">The last access date and time, in the UTC format, of the directory.</param>
    </member>
    <member name="M:Rebex.IO.VDirectory.SetLastWriteTime(System.String,System.DateTime)">
      <summary>
            Method sets the last write date and time of the directory.
            </summary>
      <param name="path">The path of the directory</param>
      <param name="lastWriteTime">The last write date and time of the directory.</param>
    </member>
    <member name="M:Rebex.IO.VDirectory.SetLastWriteTimeUtc(System.String,System.DateTime)">
      <summary>
            Method sets the last write date and time of the directory.
            </summary>
      <param name="path">The path of the directory</param>
      <param name="lastWriteTimeUtc">The last write date and time, in the UTC format, of the directory.</param>
    </member>
    <member name="M:Rebex.IO.VDirectory.GetDirectories(System.String)">
      <summary>
            Returns an array that contains full paths to directories that are located in the directory identified by the <paramref name="path" />.
            </summary>
      <param name="path">The path to the directory that contains directories that should be returned.</param>
      <returns>An array that contains full paths to directories that are located in the directory identified by the <paramref name="path" />.</returns>
    </member>
    <member name="M:Rebex.IO.VDirectory.GetDirectories(System.String,System.String)">
      <summary>
            Returns an array that contains full paths to directories
            that are located in the directory identified by the <paramref name="path" />
            and their name matches the given <paramref name="searchPattern" />.
            </summary>
      <param name="path">The path to the directory that contains directories that should be returned.</param>
      <param name="searchPattern">The search pattern to which the name of the returned directory must conform. Search patterns may include '?' and '*' wildcards.</param>
      <returns>
            An array that contains directories located in the directory identified by the <paramref name="path" />
            and their name matches the given <paramref name="searchPattern" />.
            </returns>
    </member>
    <member name="M:Rebex.IO.VDirectory.GetDirectories(System.String,System.String,System.IO.SearchOption)">
      <summary>
             Returns an array that contains full paths to directories
             that are located in the directory identified by the <paramref name="path" />
             and their name matches the given <paramref name="searchPattern" />.
             When the <paramref name="searchPattern" /> has value <see cref="F:System.IO.SearchOption.AllDirectories" /> then this method returns all subdirectories recursively;
             otherwise returns only directories on the first level of the hierarchy.
             </summary>
      <param name="path">The path to the directory that contains directories that should be returned.</param>
      <param name="searchPattern">The search pattern to which the name of the returned directory must conform. Search patterns may include '?' and '*' wildcards.</param>
      <param name="searchOption">When the searchOption has value <see cref="F:System.IO.SearchOption.AllDirectories" /> then this method returns all subdirectories recursively;
             otherwise returns only directories on the first level of the hierarchy.
            </param>
      <returns>
             An array that contains directories located in the directory identified by the <paramref name="path" />
             and their name matches the given <paramref name="searchPattern" />.
             </returns>
    </member>
    <member name="M:Rebex.IO.VDirectory.GetDirectoryRoot(System.String)">
      <summary>
            Method returns the root path of the virtual file system <see cref="T:Rebex.IO.VDriveInfo" /> object to which the directory, identified by the <paramref name="path" />, belongs.
            </summary>
      <param name="path">Path of the directory.</param>
      <returns>The root path of the virtual file system <see cref="T:Rebex.IO.VDriveInfo" /> object to which the directory, identified by the <paramref name="path" />, belongs</returns>
    </member>
    <member name="M:Rebex.IO.VDirectory.GetFiles(System.String)">
      <summary>
            Returns an array that contains full paths to files that are located in the directory identified by the <paramref name="path" />.
            </summary>
      <param name="path">The path to the directory that contains files that should be returned.</param>
      <returns>An array that contains files located in the directory identified by the <paramref name="path" />.</returns>
    </member>
    <member name="M:Rebex.IO.VDirectory.GetFiles(System.String,System.String)">
      <summary>
            Returns an array that contains full paths to files
            that are located in the directory identified by the <paramref name="path" />
            and their name matches the given <paramref name="searchPattern" />.
            </summary>
      <param name="path">The path to the directory that contains files that should be returned.</param>
      <param name="searchPattern">The search pattern to which the name of the returned file must conform. Search patterns may include '?' and '*' wildcards.</param>
      <returns>
            An array that contains files located in the directory identified by the <paramref name="path" />
            and their name matches the given <paramref name="searchPattern" />.
            </returns>
    </member>
    <member name="M:Rebex.IO.VDirectory.GetFiles(System.String,System.String,System.IO.SearchOption)">
      <summary>
             Returns an array that contains full paths to files
             that are located in the directory identified by the <paramref name="path" />
             and their name matches the given <paramref name="searchPattern" />.
             When the <paramref name="searchPattern" /> has value <see cref="F:System.IO.SearchOption.AllDirectories" /> then this method returns all files recursively;
             otherwise returns only files on the first level of the hierarchy.
             </summary>
      <param name="path">The path to the directory that contains files that should be returned.</param>
      <param name="searchPattern">The search pattern to which the name of the returned file must conform. Search patterns may include '?' and '*' wildcards.</param>
      <param name="searchOption">When the searchOption has value <see cref="F:System.IO.SearchOption.AllDirectories" /> then this method returns all files recursively;
             otherwise returns only files on the first level of the hierarchy.
            </param>
      <returns>
             An array that contains files located in the directory identified by the <paramref name="path" />
             and their name matches the given <paramref name="searchPattern" />.
             </returns>
    </member>
    <member name="M:Rebex.IO.VDirectory.GetFileSystemEntries(System.String)">
      <summary>
            Returns an array that contains full paths to file system entries that are located in the directory identified by the <paramref name="path" />.
            </summary>
      <param name="path">The path to the directory that contains file system entries that should be returned.</param>
      <returns>An array that contains file system entries located in the directory identified by the <paramref name="path" />.</returns>
    </member>
    <member name="M:Rebex.IO.VDirectory.GetFileSystemEntries(System.String,System.String)">
      <summary>
            Returns an array that contains full paths to file system entries
            that are located in the directory identified by the <paramref name="path" />
            and their name matches the given <paramref name="searchPattern" />.
            </summary>
      <param name="path">The path to the directory that contains file system entries that should be returned.</param>
      <param name="searchPattern">The search pattern to which the name of the returned file system entry must conform. Search patterns may include '?' and '*' wildcards.</param>
      <returns>
            An array that contains file system entries located in the directory identified by the <paramref name="path" />
            and their name matches the given <paramref name="searchPattern" />.
            </returns>
    </member>
    <member name="M:Rebex.IO.VDirectory.GetFileSystemEntries(System.String,System.String,System.IO.SearchOption)">
      <summary>
             Returns an array that contains full paths to file system entries
             that are located in the directory identified by the <paramref name="path" />
             and their name matches the given <paramref name="searchPattern" />.
             When the <paramref name="searchPattern" /> has value <see cref="F:System.IO.SearchOption.AllDirectories" /> then this method returns all file system entries recursively;
             otherwise returns only file system entries on the first level of the hierarchy.
             </summary>
      <param name="path">The path to the directory that contains file system entries that should be returned.</param>
      <param name="searchPattern">The search pattern to which the name of the returned file system entry must conform. Search patterns may include '?' and '*' wildcards.</param>
      <param name="searchOption">When the searchOption has value <see cref="F:System.IO.SearchOption.AllDirectories" /> then this method returns all file system entries recursively;
             otherwise returns only file system entry on the first level of the hierarchy.
            </param>
      <returns>
             An array that contains file system entries located in the directory identified by the <paramref name="path" />
             and their name matches the given <paramref name="searchPattern" />.
             </returns>
    </member>
    <member name="M:Rebex.IO.VDirectory.GetLogicalDrives">
      <summary>
            Method returns an array that contains root paths for all virtual file system <see cref="T:Rebex.IO.VDriveInfo" /> objects.
            </summary>
      <returns>An array that contains root paths for all virtual file system <see cref="T:Rebex.IO.VDriveInfo" /> objects.</returns>
    </member>
    <member name="M:Rebex.IO.VDirectory.GetParent(System.String)">
      <summary>
            Method returns an instance of the <see cref="T:Rebex.IO.VDirectoryInfo" /> class that represents the parent of the directory identified by the <paramref name="path" />.
            </summary>
      <param name="path">Path of the directory.</param>
      <returns>An instance of the <see cref="T:Rebex.IO.VDirectoryInfo" /> class that represents the parent of the directory identified by the <paramref name="path" />.</returns>
    </member>
    <member name="M:Rebex.IO.VDirectory.Move(System.String,System.String)">
      <summary>
            Method moves a directory (or a file) identified by the <paramref name="sourceDirName" /> to the location denoted by the <paramref name="destDirName" />.
            </summary>
      <param name="sourceDirName">The path of the source directory (or the source file).</param>
      <param name="destDirName">The final path of the (moved) directory (or file).</param>
    </member>
    <member name="T:Rebex.IO.VDirectoryInfo">
      <summary>
             Class represents a directory in the virtual file system.
             This class provides properties and methods that are functionally similar to the standard .NET <see cref="T:System.IO.DirectoryInfo" /> properties and methods.
             </summary>
      <example>
        <code>
             //Create a built-in or custom VFS provider 
            var memoryProvider = new MemoryFileSystemProvider()
             //Save the root path
            var memoryProviderRootPath = memoryProvider.GetRootVDirectoryInfo().FullName;
             //Create new directory 'Data' in the root directory
            VDirectoryInfo dataDirInfo = new VDirectoryInfo(Path.Combine(memoryProviderRootPath, "Data"));
            dataDirInfo.Create();
             </code>
      </example>
      <seealso cref="T:Rebex.IO.VFileInfo" />
      <seealso cref="T:Rebex.IO.VDirectory" />
      <seealso cref="T:Rebex.IO.VFile" />
      <seealso cref="T:Rebex.IO.FileSystem.MemoryFileSystemProvider" />
      <seealso cref="T:Rebex.IO.FileSystem.LocalFileSystemProvider" />
      <seealso cref="T:Rebex.IO.FileSystem.MountCapableFileSystemProvider" />
      <seealso cref="T:Rebex.IO.FileSystem.ReadWriteFileSystemProvider" />
      <seealso cref="T:Rebex.IO.FileSystem.ReadOnlyFileSystemProvider" />
    </member>
    <member name="M:Rebex.IO.VDirectoryInfo.#ctor(System.String)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.IO.VDirectoryInfo" /></summary>
      <param name="currentDirPath">The path to the directory.</param>
    </member>
    <member name="P:Rebex.IO.VDirectoryInfo.Parent">
      <summary>
            Gets an instance of the <see cref="T:Rebex.IO.VDirectoryInfo" /> class that represents the parent of this directory.
            When this directory represents a root directory then returns null.
            </summary>
    </member>
    <member name="P:Rebex.IO.VDirectoryInfo.Root">
      <summary>
            Gets an instance of the <see cref="T:Rebex.IO.VDirectoryInfo" /> that represents the root directory.
            </summary>
      <returns>An instance of the <see cref="T:Rebex.IO.VDirectoryInfo" /> that represents the root directory.</returns>
    </member>
    <member name="M:Rebex.IO.VDirectoryInfo.Create">
      <summary>
            Method creates a directory. Any non-existent parent directory is created as well.
            </summary>
    </member>
    <member name="M:Rebex.IO.VDirectoryInfo.CreateSubdirectory(System.String)">
      <summary>
            Method creates a subdirectory for the specified <paramref name="path" />.
            Any non-existent parent directory is created as well.
            </summary>
      <param name="path">Path of the subdirectory relative to this directory path.</param>
      <returns>An instance of the <see cref="T:Rebex.IO.VDirectoryInfo" /> that represents created subdirectory.</returns>
    </member>
    <member name="M:Rebex.IO.VDirectoryInfo.Delete">
      <summary>
            Deletes a directory.
            </summary>
      <remarks>
            Method deletes only an empty directory.
            When a directory is not empty then <see cref="T:System.IO.IOException" /> is thrown.
            </remarks>
    </member>
    <member name="M:Rebex.IO.VDirectoryInfo.Delete(System.Boolean)">
      <summary>
            Deletes a directory.
            </summary>
      <param name="recursive">
            When the argument is true then this method deletes all files and directories in the directory recursively.
            When the argument is false and a directory is not empty then this method throws the <see cref="T:System.IO.IOException" />.
            </param>
    </member>
    <member name="M:Rebex.IO.VDirectoryInfo.EnumerateDirectories">
      <summary>
            Returns an enumerator that yields instances of the <see cref="T:Rebex.IO.VDirectoryInfo" /> that are located in a directory.
            </summary>
      <returns>An enumerator that yields instances of the <see cref="T:Rebex.IO.VDirectoryInfo" /> that are located in a directory.</returns>
    </member>
    <member name="M:Rebex.IO.VDirectoryInfo.EnumerateDirectories(System.String)">
      <summary>
            Returns an enumerator that yields  instances of the <see cref="T:Rebex.IO.VDirectoryInfo" /> 
            that are located in a directory.
            </summary>
      <param name="searchPattern">The search pattern to which the name of the returned directory must conform. Search patterns may include '?' and '*' wildcards.</param>
      <returns>
            An enumerator that yields that yields instances of the <see cref="T:Rebex.IO.VDirectoryInfo" /> that are located in a directory
            and their name matches the given <paramref name="searchPattern" />.
            </returns>
    </member>
    <member name="M:Rebex.IO.VDirectoryInfo.EnumerateDirectories(System.String,System.IO.SearchOption)">
      <summary>
             Returns an enumerator that yields  instances of the <see cref="T:Rebex.IO.VDirectoryInfo" /> 
             that are located in a directory
             and their name matches the given <paramref name="searchPattern" />.
             When the <paramref name="searchPattern" /> has value <see cref="F:System.IO.SearchOption.AllDirectories" /> then this method returns all subdirectories recursively;
             otherwise returns only directories on the first level of the hierarchy.
             </summary>
      <param name="searchPattern">The search pattern to which the name of the returned directory must conform. Search patterns may include '?' and '*' wildcards.</param>
      <param name="searchOption">When the searchOption has value <see cref="F:System.IO.SearchOption.AllDirectories" /> then this method returns all subdirectories recursively;
             otherwise returns only directories on the first level of the hierarchy.
            </param>
      <returns>
             An enumerator that yields instances of the <see cref="T:Rebex.IO.VDirectoryInfo" />  located in a directory 
             and their name matches the given <paramref name="searchPattern" />.
             </returns>
    </member>
    <member name="M:Rebex.IO.VDirectoryInfo.EnumerateFiles">
      <summary>
            Returns an enumerator that yields instances of the <see cref="T:Rebex.IO.VFileInfo" /> that are located in a directory.
            </summary>
      <returns>An enumerator that yields instances of the <see cref="T:Rebex.IO.VFileInfo" /> that are located in a directory.</returns>
    </member>
    <member name="M:Rebex.IO.VDirectoryInfo.EnumerateFiles(System.String)">
      <summary>
            Returns an enumerator that yields instances of the <see cref="T:Rebex.IO.VFileInfo" /> 
            that are located in a directory
            and their name matches the given <paramref name="searchPattern" />.
            </summary>
      <param name="searchPattern">The search pattern to which the name of the returned file must conform. Search patterns may include '?' and '*' wildcards.</param>
      <returns>
            An enumerator that yields instances of the <see cref="T:Rebex.IO.VFileInfo" /> that are located in a directory 
            and their name matches the given <paramref name="searchPattern" />.
            </returns>
    </member>
    <member name="M:Rebex.IO.VDirectoryInfo.EnumerateFiles(System.String,System.IO.SearchOption)">
      <summary>
             Returns an enumerator that yields instances of the <see cref="T:Rebex.IO.VFileInfo" /> 
             that are located in a directory
             and their name matches the given <paramref name="searchPattern" />.
             When the <paramref name="searchPattern" /> has value <see cref="F:System.IO.SearchOption.AllDirectories" /> then this method returns all files recursively;
             otherwise returns only files on the first level of the hierarchy.
             </summary>
      <param name="searchPattern">The search pattern to which the name of the returned file must conform. Search patterns may include '?' and '*' wildcards.</param>
      <param name="searchOption">When the searchOption has value <see cref="F:System.IO.SearchOption.AllDirectories" /> then this method returns all files recursively;
             otherwise returns only files on the first level of the hierarchy.
            </param>
      <returns>
             An enumerator that yields instances of the <see cref="T:Rebex.IO.VFileInfo" /> that are located in a directory
             and their name matches the given <paramref name="searchPattern" />.
             </returns>
    </member>
    <member name="M:Rebex.IO.VDirectoryInfo.EnumerateFileSystemInfos">
      <summary>
            Returns an enumerator that yields instances of the <see cref="T:Rebex.IO.VFileSystemInfo" /> that are located in a directory.
            </summary>
      <returns>An enumerator that yields  instances of the <see cref="T:Rebex.IO.VFileSystemInfo" /> that are located in a directory.</returns>
    </member>
    <member name="M:Rebex.IO.VDirectoryInfo.EnumerateFileSystemInfos(System.String)">
      <summary>
            Returns an enumerator that yields instances of the <see cref="T:Rebex.IO.VFileSystemInfo" />
            that are located in a directory
            and their name matches the given <paramref name="searchPattern" />.
            </summary>
      <param name="searchPattern">The search pattern to which the name of the returned file system info must conform. Search patterns may include '?' and '*' wildcards.</param>
      <returns>
            An enumerator that yields instances of the <see cref="T:Rebex.IO.VFileSystemInfo" /> that are located in a directory 
            and their name matches the given <paramref name="searchPattern" />.
            </returns>
    </member>
    <member name="M:Rebex.IO.VDirectoryInfo.EnumerateFileSystemInfos(System.String,System.IO.SearchOption)">
      <summary>
             Returns an enumerator that yields instances of the <see cref="T:Rebex.IO.VFileSystemInfo" />
             that are located in a directory 
             and their name matches the given <paramref name="searchPattern" />.
             When the <paramref name="searchPattern" /> has value <see cref="F:System.IO.SearchOption.AllDirectories" /> then this method returns all file system entries recursively;
             otherwise returns only file system entries on the first level of the hierarchy.
             </summary>
      <param name="searchPattern">The search pattern to which the name of the returned file system info must conform. Search patterns may include '?' and '*' wildcards.</param>
      <param name="searchOption">When the searchOption has value <see cref="F:System.IO.SearchOption.AllDirectories" /> then this method returns all file system infos recursively;
             otherwise returns only file system infos on the first level of the hierarchy.
            </param>
      <returns>
             An enumerator that yields yields instances of the <see cref="T:Rebex.IO.VFileSystemInfo" /> located in a directory
             and their name matches the given <paramref name="searchPattern" />.
             </returns>
    </member>
    <member name="M:Rebex.IO.VDirectoryInfo.GetDirectories">
      <summary>
            Returns an array that contains instances of the <see cref="T:Rebex.IO.VDirectoryInfo" /> that are located in a directory.
            </summary>
      <returns>An array that contains instances of the <see cref="T:Rebex.IO.VDirectoryInfo" /> that are located in a directory.</returns>
    </member>
    <member name="M:Rebex.IO.VDirectoryInfo.GetDirectories(System.String)">
      <summary>
            Returns an array that contains instances of the <see cref="T:Rebex.IO.VDirectoryInfo" /> 
            that are located in a directory
            and their name matches the given <paramref name="searchPattern" />.
            </summary>
      <param name="searchPattern">The search pattern to which the name of the returned directory must conform. Search patterns may include '?' and '*' wildcards.</param>
      <returns>
            An array that contains instances of the <see cref="T:Rebex.IO.VDirectoryInfo" /> that are located in a directory
            and their name matches the given <paramref name="searchPattern" />.
            </returns>
    </member>
    <member name="M:Rebex.IO.VDirectoryInfo.GetDirectories(System.String,System.IO.SearchOption)">
      <summary>
             Returns an array that contains instances of the <see cref="T:Rebex.IO.VDirectoryInfo" /> 
             that are located in a directory
             and their name matches the given <paramref name="searchPattern" />.
             When the <paramref name="searchPattern" /> has value <see cref="F:System.IO.SearchOption.AllDirectories" /> then this method returns all subdirectories recursively;
             otherwise returns only directories on the first level of the hierarchy.
             </summary>
      <param name="searchPattern">The search pattern to which the name of the returned directory must conform. Search patterns may include '?' and '*' wildcards.</param>
      <param name="searchOption">When the searchOption has value <see cref="F:System.IO.SearchOption.AllDirectories" /> then this method returns all subdirectories recursively;
             otherwise returns only subdirectories on the first level of the hierarchy.
            </param>
      <returns>
             An array that contains instances of the <see cref="T:Rebex.IO.VDirectoryInfo" />  located in a directory
             and their name matches the given <paramref name="searchPattern" />.
             </returns>
    </member>
    <member name="M:Rebex.IO.VDirectoryInfo.GetFiles">
      <summary>
            Returns an array that contains instances of the <see cref="T:Rebex.IO.VFileInfo" /> that are located in a directory.
            </summary>
      <returns>An array that contains instances of the <see cref="T:Rebex.IO.VFileInfo" /> that are located in a directory.</returns>
    </member>
    <member name="M:Rebex.IO.VDirectoryInfo.GetFiles(System.String)">
      <summary>
            Returns an array that contains full paths to files
            that are located in a directory
            and their name matches the given <paramref name="searchPattern" />.
            </summary>
      <param name="searchPattern">The search pattern to which the name of the returned file must conform. Search patterns may include '?' and '*' wildcards.</param>
      <returns>
            An array that contains instances of the <see cref="T:Rebex.IO.VFileInfo" /> that are located in a directory
            and their name matches the given <paramref name="searchPattern" />.
            </returns>
    </member>
    <member name="M:Rebex.IO.VDirectoryInfo.GetFiles(System.String,System.IO.SearchOption)">
      <summary>
             Returns an array that contains instances of the <see cref="T:Rebex.IO.VFileInfo" /> 
             that are located in a directory
             and their name matches the given <paramref name="searchPattern" />.
             When the <paramref name="searchPattern" /> has value <see cref="F:System.IO.SearchOption.AllDirectories" /> then this method returns all files recursively;
             otherwise returns only files on the first level of the hierarchy.
             </summary>
      <param name="searchPattern">The search pattern to which the name of the returned file must conform. Search patterns may include '?' and '*' wildcards.</param>
      <param name="searchOption">When the searchOption has value <see cref="F:System.IO.SearchOption.AllDirectories" /> then this method returns all files recursively;
             otherwise returns only files on the first level of the hierarchy.
            </param>
      <returns>
             An array that contains instances of the <see cref="T:Rebex.IO.VFileInfo" /> that are located in a directory
             and their name matches the given <paramref name="searchPattern" />.
             </returns>
    </member>
    <member name="M:Rebex.IO.VDirectoryInfo.GetFileSystemInfos">
      <summary>
            Returns an array that contains instances of the <see cref="T:Rebex.IO.VFileSystemInfo" /> that are located in a directory.
            </summary>
      <returns>An array that contains instances of the <see cref="T:Rebex.IO.VFileSystemInfo" /> that are located in a directory.</returns>
    </member>
    <member name="M:Rebex.IO.VDirectoryInfo.GetFileSystemInfos(System.String)">
      <summary>
            Returns an array that contains full paths to instances of the <see cref="T:Rebex.IO.VFileSystemInfo" />
            that are located in a directory
            and their name matches the given <paramref name="searchPattern" />.
            </summary>
      <param name="searchPattern">The search pattern to which the name of the returned file system entry must conform. Search patterns may include '?' and '*' wildcards.</param>
      <returns>
            An array that contains instances of the <see cref="T:Rebex.IO.VFileSystemInfo" /> that are located in the directory
            and their name matches the given <paramref name="searchPattern" />.
            </returns>
    </member>
    <member name="M:Rebex.IO.VDirectoryInfo.GetFileSystemInfos(System.String,System.IO.SearchOption)">
      <summary>
             Returns an array that contains instances of the <see cref="T:Rebex.IO.VFileSystemInfo" /> 
             that are located in a directory
             and their name matches the given <paramref name="searchPattern" />.
             When the <paramref name="searchPattern" /> has value <see cref="F:System.IO.SearchOption.AllDirectories" /> then this method returns all file system entries recursively;
             otherwise returns only file system entries on the first level of the hierarchy.
             </summary>
      <param name="searchPattern">The search pattern to which the name of the returned file system entry must conform. Search patterns may include '?' and '*' wildcards.</param>
      <param name="searchOption">When the searchOption has value <see cref="F:System.IO.SearchOption.AllDirectories" /> then this method returns all file system infos recursively;
             otherwise returns only file system infos on the first level of the hierarchy.
            </param>
      <returns>
             An array that contains instances of the <see cref="T:Rebex.IO.VFileSystemInfo" /> located in a directory
             and their name matches the given <paramref name="searchPattern" />.
             </returns>
    </member>
    <member name="M:Rebex.IO.VDirectoryInfo.MoveTo(System.String)">
      <summary>
            Method moves a directory to the location denoted by the <paramref name="destDirName" />.
            </summary>
      <param name="destDirName">The final path of the (moved) directory.</param>
    </member>
    <member name="T:Rebex.IO.VDriveInfo">
      <summary>
            Provides access to a virtual <see cref="T:Rebex.IO.FileSystem.FileSystemProvider" /> and offers interface similar to the standard .NET <see cref="T:System.IO.DriveInfo" /> interface.
            </summary>
      <seealso cref="T:Rebex.IO.VDirectoryInfo" />
      <seealso cref="T:Rebex.IO.VFileInfo" />
      <seealso cref="T:Rebex.IO.VDirectory" />
      <seealso cref="T:Rebex.IO.VFile" />
      <seealso cref="T:Rebex.IO.FileSystem.MemoryFileSystemProvider" />
      <seealso cref="T:Rebex.IO.FileSystem.LocalFileSystemProvider" />
      <seealso cref="T:Rebex.IO.FileSystem.MountCapableFileSystemProvider" />
      <seealso cref="T:Rebex.IO.FileSystem.ReadWriteFileSystemProvider" />
      <seealso cref="T:Rebex.IO.FileSystem.ReadOnlyFileSystemProvider" />
    </member>
    <member name="M:Rebex.IO.VDriveInfo.#ctor(System.String)">
      <summary>
             Initializes a new instance of the <see cref="T:Rebex.IO.VDriveInfo" />.
             Consider using the <see cref="M:Rebex.IO.FileSystem.FileSystemProviderExtensions.AsVDriveInfo(Rebex.IO.FileSystem.FileSystemProvider)" /> method or call <see cref="M:Rebex.IO.VDriveInfo.GetDrives" /> method if you don't know the drive (file system provider) name.
             </summary>
      <param name="driveName">Valid drive name.</param>
      <remarks>When the <paramref name="driveName" /> does not reference valid virtual system drive then <see cref="T:System.IO.IOException" /> is thrown.</remarks>
      <example>
        <code>
             //Create built-in and/or custom VFS providers 
            var localFileSystemProvider = new LocalFileSystemProvider(localPath);
            var memoryProvider = new MemoryFileSystemProvider();
            var mcfsp = new MountCapableFileSystemProvider();
             //Show registered drives
            foreach (VDriveInfo drive in VDriveInfo.GetDrives())
            {
              Console.WriteLine(drive.Name);
            }
             </code>
      </example>
      <seealso cref="M:Rebex.IO.FileSystem.FileSystemProviderExtensions.AsVDriveInfo(Rebex.IO.FileSystem.FileSystemProvider)" />
      <seealso cref="M:Rebex.IO.VDriveInfo.GetDrives" />
    </member>
    <member name="P:Rebex.IO.VDriveInfo.AvailableFreeSpace">
      <summary>
            Gets the available free space on the drive.
            Note: Currently returns  -1  (unknown value) for all virtual file system drives.
            </summary>
    </member>
    <member name="P:Rebex.IO.VDriveInfo.DriveFormat">
      <summary>
            Gets the drive format.
            Note: Currently returns constant string 'Rebex VFS - virtual file system' for all virtual file system drives.
            </summary>
    </member>
    <member name="P:Rebex.IO.VDriveInfo.DriveType">
      <summary>
            Gets the drive type.
            Note: Currently return DriveType.Unknown for all virtual file system drives.
            </summary>
    </member>
    <member name="P:Rebex.IO.VDriveInfo.IsReady">
      <summary>
            Gets a value that indicates if the drive is ready.
            Note: Currently return true (drive is ready) for all all virtual file system drives.
            </summary>
    </member>
    <member name="P:Rebex.IO.VDriveInfo.Name">
      <summary>
            Gets the drive name.
            </summary>
      <seealso cref="P:Rebex.IO.FileSystem.FileSystemProviderSettings.DriveName" />
    </member>
    <member name="P:Rebex.IO.VDriveInfo.RootVDirectory">
      <summary>
            Gets a instance of the <see cref="T:Rebex.IO.VDirectoryInfo" /> that represents drive root directory.
            </summary>
    </member>
    <member name="P:Rebex.IO.VDriveInfo.TotalFreeSpace">
      <summary>
            Gets the total free space on the drive.
            Note: Currently returns  -1 (unknown value) for all virtual file system drives.
            </summary>
    </member>
    <member name="P:Rebex.IO.VDriveInfo.TotalSize">
      <summary>
            Gets the total size of the drive.
            Note: Currently returns  -1 (unknown value) for all virtual file system drives.
            </summary>
    </member>
    <member name="P:Rebex.IO.VDriveInfo.VolumeLabel">
      <summary>
            Gets the drive volume label.
            Note: Currently returns <see cref="F:System.String.Empty" /> for all virtual file system drives.
            </summary>
    </member>
    <member name="M:Rebex.IO.VDriveInfo.GetDrives">
      <summary>
            Method returns all registered virtual file system providers in the form of the <see cref="T:Rebex.IO.VDriveInfo" /> object.
            </summary>
      <returns>All registered virtual file system providers in the form of the <see cref="T:Rebex.IO.VDriveInfo" /> object.</returns>
    </member>
    <member name="M:Rebex.IO.VDriveInfo.ToString">
      <summary>
            Returns the drive name.
            </summary>
      <returns>The drive name.</returns>
    </member>
    <member name="T:Rebex.IO.VFile">
      <summary>
             This class contains static methods that work with virtual file system files.
             This class provides methods that are functionally similar to the standard .NET <see cref="T:System.IO.File" /> methods.
             </summary>
      <example>
        <code>
             //Create a built-in or custom VFS provider 
            var memoryProvider = new MemoryFileSystemProvider()
             //Save the root path
            var memoryProviderRootPath = memoryProvider.GetRootVDirectoryInfo().FullName;
             //Create 'file.dat' file in the root directory.
            using (var myFile = VFile.Create(Path.Combine(memoryProviderRootPath, "file.dat")))
            {
               //Write data to the file
               myFile.Write(myData, 0, myData.Length);
            }
             </code>
      </example>
      <seealso cref="T:Rebex.IO.VDirectoryInfo" />
      <seealso cref="T:Rebex.IO.VFileInfo" />
      <seealso cref="T:Rebex.IO.VDirectory" />
      <seealso cref="T:Rebex.IO.FileSystem.MemoryFileSystemProvider" />
      <seealso cref="T:Rebex.IO.FileSystem.LocalFileSystemProvider" />
      <seealso cref="T:Rebex.IO.FileSystem.MountCapableFileSystemProvider" />
      <seealso cref="T:Rebex.IO.FileSystem.ReadWriteFileSystemProvider" />
      <seealso cref="T:Rebex.IO.FileSystem.ReadOnlyFileSystemProvider" />
    </member>
    <member name="M:Rebex.IO.VFile.AppendAllLines(System.String,System.Collections.Generic.IEnumerable{System.String})">
      <summary>
            Method appends <paramref name="contents" />
            to a file identified by the <paramref name="path" />.
            </summary>
      <param name="path">The path of the file.</param>
      <param name="contents">The lines to be appended to the file.</param>
      <remarks>
            Method creates the file if it does not exist, opens the file, writes the content and closes the file.
            </remarks>
    </member>
    <member name="M:Rebex.IO.VFile.AppendAllLinesAsync(System.String,System.Collections.Generic.IEnumerable{System.String},System.Threading.CancellationToken)">
      <summary>
            Method appends <paramref name="contents" />
            to a file identified by the <paramref name="path" />.
            </summary>
      <param name="path">The path of the file.</param>
      <param name="contents">The lines to be appended to the file.</param>
      <param name="cancellationToken">The cancellation token. See remarks for details.</param>
      <returns>A <see cref="T:System.Threading.Tasks.Task" /> that represents the operation. See remarks for details.</returns>
      <remarks>
        <ul>
          <li>Method creates the file if it does not exist, opens the file, writes the content and closes the file.</li>
          <li>
            Rebex virtual file systems are synchronous. This method is provided only for compatibility with the <see cref="T:System.IO.File" /> API on modern platforms.
            <strong>
            Despite the async suffix this method runs synchronously and returns completed <see cref="T:System.Threading.Tasks.Task" />.
            The <paramref name="cancellationToken" /> is not used.
            If the need to offload the operation to the background thread arise,
            consider using the .NET Task.Run (or TaskFactory.StartNew on older platforms) API
            with the synchronous <see cref="M:Rebex.IO.VFile.AppendAllLines(System.String,System.Collections.Generic.IEnumerable{System.String})" /> method.
            </strong></li>
        </ul>
      </remarks>
    </member>
    <member name="M:Rebex.IO.VFile.AppendAllLines(System.String,System.Collections.Generic.IEnumerable{System.String},System.Text.Encoding)">
      <summary>
            Method appends <paramref name="contents" /> to a file identified
            by the <paramref name="path" /> and using a <paramref name="encoding" />.
            </summary>
      <param name="path">The path of the file.</param>
      <param name="contents">The lines to be appended to the file.</param>
      <param name="encoding">The character encoding.</param>
      <remarks>
            Method creates the file if it does not exist, opens the file, writes the content and closes the file.
            </remarks>
    </member>
    <member name="M:Rebex.IO.VFile.AppendAllLinesAsync(System.String,System.Collections.Generic.IEnumerable{System.String},System.Text.Encoding,System.Threading.CancellationToken)">
      <summary>
            Method appends <paramref name="contents" /> to a file identified
            by the <paramref name="path" /> and using a <paramref name="encoding" />.
            </summary>
      <param name="path">The path of the file.</param>
      <param name="contents">The lines to be appended to the file.</param>
      <param name="encoding">The character encoding.</param>
      <param name="cancellationToken">The cancellation token. See remarks for details.</param>
      <returns>A <see cref="T:System.Threading.Tasks.Task" /> that represents the operation. See remarks for details.</returns>
      <remarks>
        <ul>
          <li>
            Method creates the file if it does not exist, opens the file, writes the content and closes the file.
            </li>
          <li>
            Rebex virtual file systems are synchronous. This method is provided only for compatibility with the <see cref="T:System.IO.File" /> API on modern platforms.
            <strong>
            Despite the async suffix this method runs synchronously and returns completed <see cref="T:System.Threading.Tasks.Task" />.
            The <paramref name="cancellationToken" /> is not used.
            If the need to offload the operation to the background thread arise,
            consider using the .NET Task.Run (or TaskFactory.StartNew on older platforms) API
            with the synchronous <see cref="M:Rebex.IO.FileSystem.IO.VFile.AppendAllLinesAsync(System.String,System.Collections.Generic.IEnumerable{System.String},System.Threading.CancellationToken)" /> method.
            </strong></li>
        </ul>
      </remarks>
    </member>
    <member name="M:Rebex.IO.VFile.AppendAllText(System.String,System.String)">
      <summary>
            Method appends <paramref name="contents" /> to a file identified by the <paramref name="path" />.
            </summary>
      <param name="path">The path of the file.</param>
      <param name="contents">The lines to be appended to the file.</param>
      <remarks>
            Method creates the file if it does not exist, opens the file, writes the content and closes the file.
            </remarks>
    </member>
    <member name="M:Rebex.IO.VFile.AppendAllTextAsync(System.String,System.String,System.Threading.CancellationToken)">
      <summary>
            Method appends <paramref name="contents" /> to a file identified by the <paramref name="path" />.
            </summary>
      <param name="path">The path of the file.</param>
      <param name="contents">The lines to be appended to the file.</param>
      <param name="cancellationToken">The cancellation token. See remarks for details.</param>
      <returns>A <see cref="T:System.Threading.Tasks.Task" /> that represents the operation. See remarks for details.</returns>
      <remarks>
        <ul>
          <li>
            Method creates the file if it does not exist, opens the file, writes the content and closes the file.
            </li>
          <li>
            Rebex virtual file systems are synchronous. This method is provided only for compatibility with the <see cref="T:System.IO.File" /> API on modern platforms.
            <strong>
            Despite the async suffix this method runs synchronously and returns completed <see cref="T:System.Threading.Tasks.Task" />.
            The <paramref name="cancellationToken" /> is not used.
            If the need to offload the operation to the background thread arise,
            consider using the .NET Task.Run (or TaskFactory.StartNew on older platforms) API
            with the synchronous <see cref="M:Rebex.IO.FileSystem.IO.VFile.AppendAllText(System.String,System.String)" /> method.
            </strong></li>
        </ul>
      </remarks>
    </member>
    <member name="M:Rebex.IO.VFile.AppendAllText(System.String,System.String,System.Text.Encoding)">
      <summary>
            Method appends <paramref name="contents" /> to a file identified
            by the <paramref name="path" /> and using a <paramref name="encoding" />.
            </summary>
      <param name="path">The path of the file.</param>
      <param name="contents">The lines to be appended to the file.</param>
      <param name="encoding">The character encoding.</param>
      <remarks>
            Method creates the file if it does not exist, opens the file, writes the content and closes the file.
            </remarks>
    </member>
    <member name="M:Rebex.IO.VFile.AppendAllTextAsync(System.String,System.String,System.Text.Encoding,System.Threading.CancellationToken)">
      <summary>
            Method appends <paramref name="contents" /> to a file identified
            by the <paramref name="path" /> and using a <paramref name="encoding" />.
            </summary>
      <param name="path">The path of the file.</param>
      <param name="contents">The lines to be appended to the file.</param>
      <param name="encoding">The character encoding.</param>
      <param name="cancellationToken">The cancellation token. See remarks for details.</param>
      <returns>A <see cref="T:System.Threading.Tasks.Task" /> that represents the operation. See remarks for details.</returns>
      <remarks>
        <ul>
          <li>Method creates the file if it does not exist, opens the file, writes the content and closes the file.</li>
          <li>
            Rebex virtual file systems are synchronous. This method is provided only for compatibility with the <see cref="T:System.IO.File" /> API on modern platforms.
            <strong>
            Despite the async suffix this method runs synchronously and returns completed <see cref="T:System.Threading.Tasks.Task" />.
            The <paramref name="cancellationToken" /> is not used.
            If the need to offload the operation to the background thread arise,
            consider using the .NET Task.Run (or TaskFactory.StartNew on older platforms) API
            with the synchronous <see cref="M:Rebex.IO.FileSystem.IO.VFile.AppendAllText(System.String,System.String,System.Text.Encoding)" /> method.
            </strong></li>
        </ul>
      </remarks>
    </member>
    <member name="M:Rebex.IO.VFile.AppendText(System.String)">
      <summary>
            Method returns an instance of the <see cref="T:System.IO.StreamWriter" />
            that appends data to the file identified by the <paramref name="path" />.
            </summary>
      <param name="path">The path of the file.</param>
      <returns>An instance of the <see cref="T:System.IO.StreamWriter" />
            for a file identified by the <paramref name="path" />.</returns>
      <remarks>
            Returned instance of the <see cref="T:System.IO.StreamWriter" /> uses UTF-8 character encoding.
            </remarks>
    </member>
    <member name="M:Rebex.IO.VFile.Copy(System.String,System.String)">
      <summary>
            Method copies a file identified by the <paramref name="sourceFileName" /> to the location denoted by the <paramref name="destFileName" />.
            </summary>
      <param name="sourceFileName">The path of the source file.</param>
      <param name="destFileName">The final path of the (copied) file.</param>
    </member>
    <member name="M:Rebex.IO.VFile.Create(System.String)">
      <summary>
            Method returns read/write instance of the <see cref="T:Rebex.IO.VFileStream" />
            for a file identified by the <paramref name="path" />.
            A caller must dispose the returned stream to ensure that the data
            written to the stream are persisted.
            </summary>
      <param name="path">The path of the file.</param>
      <returns>A read/write instance of the <see cref="T:Rebex.IO.VFileStream" />
            for a file identified by the <paramref name="path" />.</returns>
      <remarks>
            Method creates the file if it does not exist.
            When the file exists then the content of the existing file is truncated.
            </remarks>
    </member>
    <member name="M:Rebex.IO.VFile.Create(System.String,System.Int32)">
      <summary>
            Method returns read/write instance of the <see cref="T:Rebex.IO.VFileStream" />
            for a file identified by the <paramref name="path" />.
            A caller must dispose the returned stream to ensure that the data
            written to the stream are persisted.
            </summary>
      <param name="path">The path of the file.</param>
      <param name="bufferSize">This argument is ignored.</param>
      <returns>A read/write instance of the <see cref="T:Rebex.IO.VFileStream" />
            for a file identified by the <paramref name="path" />.</returns>
      <remarks>
            Method creates the file if it does not exist.
            When the file exists then the content of the existing file is truncated.
            </remarks>
    </member>
    <member name="M:Rebex.IO.VFile.Create(System.String,System.Int32,System.IO.FileOptions)">
      <summary>
            Method returns read/write instance of the <see cref="T:Rebex.IO.VFileStream" />
            for a file identified by the <paramref name="path" />.
            A caller must dispose the returned stream to ensure that the data
            written to the stream are persisted.
            </summary>
      <param name="path">The path of the file.</param>
      <param name="bufferSize">This argument is ignored.</param>
      <param name="options">Only <see cref="F:System.IO.FileOptions.DeleteOnClose" /> option is supported. All other options are ignored.</param>
      <returns>A read/write instance of the <see cref="T:Rebex.IO.VFileStream" />
            for a file identified by the <paramref name="path" />.</returns>
      <remarks>
            Method creates the file if it does not exist.
            When the file exists then the content of the existing file is truncated.
            </remarks>
    </member>
    <member name="M:Rebex.IO.VFile.CreateText(System.String)">
      <summary>
            Method returns <see cref="T:System.IO.StreamWriter" />
            for a file identified by the <paramref name="path" />.
            A caller must dispose the returned <see cref="T:System.IO.StreamWriter" /> to ensure that the data
            written to the <see cref="T:System.IO.StreamWriter" /> are persisted.
            </summary>
      <param name="path">The path of the file.</param>
      <returns>
        <see cref="T:System.IO.StreamWriter" /> for a file identified by the <paramref name="path" />.</returns>
      <remarks>
        <p>
            Method creates the file if it does not exist.
            When the file exists then the content of the existing file is truncated.
            </p>
        <p>
            Returned instance of the <see cref="T:System.IO.StreamWriter" /> uses UTF-8 character encoding.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.IO.VFile.Copy(System.String,System.String,System.Boolean)">
      <summary>
            Method copies a file identified by the <paramref name="sourceFileName" /> to the location denoted by the <paramref name="destFileName" />.
            </summary>
      <param name="sourceFileName">The path of the source file.</param>
      <param name="destFileName">The final path of the (copied) file.</param>
      <param name="overwrite">When the overwrite is set to to true and <paramref name="destFileName" /> exists
            then the destination file is overwritten.
            When the overwrite is set to to false and <paramref name="destFileName" /> exists
            then the <see cref="T:System.IO.IOException" /> is thrown.</param>
    </member>
    <member name="M:Rebex.IO.VFile.Delete(System.String)">
      <summary>
            Deletes a file identified by the <paramref name="path" />.
            </summary>
      <param name="path">The path of the file that should be deleted.</param>
    </member>
    <member name="M:Rebex.IO.VFile.Exists(System.String)">
      <summary>
            Method returns true when a file exists on the given <paramref name="path" />; otherwise returns false.
            </summary>
      <param name="path">The path of the file, which existence is checked.</param>
      <returns>True when a file exists on the given <paramref name="path" />; otherwise returns false.</returns>
    </member>
    <member name="M:Rebex.IO.VFile.GetAttributes(System.String)">
      <summary>
            Method returns <see cref="T:System.IO.FileAttributes" /> for a file identified by the <paramref name="path" />.
            </summary>
      <param name="path">Path of the file.</param>
      <returns>
        <see cref="T:System.IO.FileAttributes" /> for a file identified by the <paramref name="path" />.</returns>
    </member>
    <member name="M:Rebex.IO.VFile.Move(System.String,System.String)">
      <summary>
            Method moves a file identified by the <paramref name="sourceFileName" /> to the location denoted by the <paramref name="destFileName" />.
            </summary>
      <param name="sourceFileName">The path of the of the source file.</param>
      <param name="destFileName">The final path of the (moved) file.</param>
    </member>
    <member name="M:Rebex.IO.VFile.Open(System.String,System.IO.FileMode)">
      <summary>
            Method returns an instance of the <see cref="T:Rebex.IO.VFileStream" />
            for a file identified by the <paramref name="path" /> and required <paramref name="mode" />.
            A caller must dispose the returned stream.
            </summary>
      <param name="path">The path of the file.</param>
      <param name="mode">One of the <see cref="T:System.IO.FileMode" /> values which determines how to open a file. </param>
      <returns> An instance of the <see cref="T:Rebex.IO.VFileStream" />  for a file identified by the <paramref name="path" /> and required <paramref name="mode" />
            for a file identified by the <paramref name="path" /> and required <paramref name="mode" />.</returns>
    </member>
    <member name="M:Rebex.IO.VFile.Open(System.String,System.IO.FileMode,System.IO.FileAccess)">
      <summary>
            Method returns an instance of the <see cref="T:Rebex.IO.VFileStream" />
            for a file identified by the <paramref name="path" />, required <paramref name="mode" /> and requested <paramref name="access" />.
            A caller must dispose the returned stream.
            </summary>
      <param name="path">The path of the file.</param>
      <param name="mode">
            One of the <see cref="T:System.IO.FileMode" /> values which determines
            how to open a file. </param>
      <param name="access">One of the <see cref="T:System.IO.FileAccess" /> values which determines
            if the returned stream should be read-only stream, write-only stream or read/write stream. </param>
      <returns>An instance of the <see cref="T:Rebex.IO.VFileStream" />
            for a file identified by the <paramref name="path" />, required <paramref name="mode" /> and requested <paramref name="access" />.
            </returns>
    </member>
    <member name="M:Rebex.IO.VFile.Open(System.String,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare)">
      <summary>
            Method returns an instance of the <see cref="T:Rebex.IO.VFileStream" />
            for a file identified by the <paramref name="path" />, required <paramref name="mode" /> and requested <paramref name="access" />.
            A caller must dispose the returned stream.
            </summary>
      <param name="path">The path of the file.</param>
      <param name="mode">
            One of the <see cref="T:System.IO.FileMode" /> values which determines
            how to open a file. </param>
      <param name="access">One of the <see cref="T:System.IO.FileAccess" /> values which determines
            if the returned stream should be read-only stream, write-only stream or read/write stream. </param>
      <param name="share">This argument is ignored.
            Concurrent access to the same virtual file is not supported and leads to undefined behavior.</param>
      <returns> An instance of the <see cref="T:Rebex.IO.VFileStream" />
            for a file identified by the <paramref name="path" />, required <paramref name="mode" /> and requested <paramref name="access" />.
            </returns>
      <remarks>
            Concurrent access to the same virtual file is not supported and leads to undefined behavior.
            </remarks>
    </member>
    <member name="M:Rebex.IO.VFile.OpenRead(System.String)">
      <summary>
            Method returns an instance of the read-only <see cref="T:Rebex.IO.VFileStream" />
            for a file identified by the <paramref name="path" />.
            A caller must dispose the returned stream.
            Calling the  method is equivalent to calling the method <see cref="M:Rebex.IO.VFile.Open(System.String,System.IO.FileMode,System.IO.FileAccess)" />
            with arguments <i>Open(path, FileMode.Open, FileAccess.Read)</i>.
            </summary>
      <param name="path">The path of the file.</param>
      <returns> An instance of the read-only <see cref="T:Rebex.IO.VFileStream" />
            for a file identified by the <paramref name="path" />.</returns>
    </member>
    <member name="M:Rebex.IO.VFile.OpenText(System.String)">
      <summary>
             Method returns an instance of the <see cref="T:System.IO.StreamReader" />
             for a file identified by the <paramref name="path" />.
             A caller must dispose the returned <see cref="T:System.IO.StreamWriter" />.
             </summary>
      <param name="path">The path of the file.</param>
      <returns> An instance of the <see cref="T:System.IO.StreamReader" />
             for a file identified by the <paramref name="path" />.</returns>
      <remarks>
             Returned instance of the <see cref="T:System.IO.StreamReader" /> uses UTF-8 character encoding.
             </remarks>
    </member>
    <member name="M:Rebex.IO.VFile.OpenWrite(System.String)">
      <summary>
            Method returns an instance of the write-only <see cref="T:Rebex.IO.VFileStream" />
            for a file identified by the <paramref name="path" />.
            A caller must dispose the returned stream.
            Calling the  method is equivalent to calling the method <see cref="M:Rebex.IO.VFile.Open(System.String,System.IO.FileMode,System.IO.FileAccess)" />
            with arguments <i>Open(path, FileMode.OpenOrCreate, FileAccess.Write)</i>.
            </summary>
      <param name="path">The path of the file.</param>
      <returns> An instance of the write-only <see cref="T:Rebex.IO.VFileStream" />
            for a file identified by the <paramref name="path" />.</returns>
    </member>
    <member name="M:Rebex.IO.VFile.ReadAllBytes(System.String)">
      <summary>
            Method returns a byte array that contains the binary content of a file identified by the <paramref name="path" />.
            </summary>
      <param name="path">The path of the file.</param>
      <returns>A byte array that contains the binary content of a file identified by the <paramref name="path" />.</returns>
    </member>
    <member name="M:Rebex.IO.VFile.ReadAllBytesAsync(System.String,System.Threading.CancellationToken)">
      <summary>
            Method returns a byte array that contains the binary content of a file identified by the <paramref name="path" />.
            </summary>
      <param name="path">The path of the file.</param>
      <param name="cancellationToken">The cancellation token. See remarks for details.</param>
      <returns>A <see cref="T:System.Threading.Tasks.Task`1" />, which wraps the byte array that contains the binary content of a file identified by the <paramref name="path" />.</returns>
      <remarks>
            Rebex virtual file systems are synchronous. This method is provided only for compatibility with the <see cref="T:System.IO.File" /> API on modern platforms.
            <strong>
            Despite the async suffix this method runs synchronously and returns byte array wrapped in the instance of the Task&lt;byte[]&gt; class.
            The <paramref name="cancellationToken" /> is not used.
            If the need to offload the operation to the background thread arise,
            consider using the .NET Task.Run (or TaskFactory.StartNew on older platforms) API
            with the synchronous <see cref="M:Rebex.IO.FileSystem.IO.VFile.ReadAllBytes(System.String)" /> method.
            </strong></remarks>
    </member>
    <member name="M:Rebex.IO.VFile.ReadAllLines(System.String)">
      <summary>
            Method returns a string array that contains all lines from a text file identified by the <paramref name="path" />.
            </summary>
      <param name="path">The path of the file.</param>
      <returns>A string array that contains all lines form a text file identified by the <paramref name="path" />.</returns>
      <remarks>All lines are read using the UTF-8 encoding.</remarks>
    </member>
    <member name="M:Rebex.IO.VFile.ReadAllLinesAsync(System.String,System.Threading.CancellationToken)">
      <summary>
            Method returns a string array that contains all lines from a text file identified by the <paramref name="path" />.
            </summary>
      <param name="path">The path of the file.</param>
      <param name="cancellationToken">The cancellation token. See remarks for details.</param>
      <returns>A <see cref="T:System.Threading.Tasks.Task`1" />, which wraps the string array that contains all lines form a text file identified by the <paramref name="path" />.</returns>
      <remarks>
        <ul>
          <li>
            All lines are read using the UTF-8 encoding.
            </li>
          <li>
            Rebex virtual file systems are synchronous. This method is provided only for compatibility with the <see cref="T:System.IO.File" /> API on modern platforms.
            <strong>
            Despite the async suffix this method runs synchronously and returns a string array wrapped in the instance of the Task&lt;string[]&gt; class.
            The <paramref name="cancellationToken" /> is not used.
            If the need to offload the operation to the background thread arise,
            consider using the .NET Task.Run (or TaskFactory.StartNew on older platforms) API
            with the synchronous <see cref="M:Rebex.IO.FileSystem.IO.VFile.ReadAllLines(System.String)" /> method.
            </strong></li>
        </ul>
      </remarks>
    </member>
    <member name="M:Rebex.IO.VFile.ReadAllLines(System.String,System.Text.Encoding)">
      <summary>
            Method returns a string array that contains all lines from a text file identified by the <paramref name="path" />.
            All lines are read using the provided <paramref name="encoding" />.
            </summary>
      <param name="path">The path of the file.</param>
      <param name="encoding">The character encoding.</param>
      <returns>A string array that contains all lines form a text file identified by the <paramref name="path" />.</returns>
    </member>
    <member name="M:Rebex.IO.VFile.ReadAllLinesAsync(System.String,System.Text.Encoding,System.Threading.CancellationToken)">
      <summary>
            Method returns a string array that contains all lines from a text file identified by the <paramref name="path" />.
            </summary>
      <param name="path">The path of the file.</param>
      <param name="encoding">The character encoding.</param>
      <param name="cancellationToken">The cancellation token. See remarks for details.</param>
      <returns>A <see cref="T:System.Threading.Tasks.Task`1" />, which wraps the string array that contains all lines form a text file identified by the <paramref name="path" />.</returns>
      <remarks>
        <ul>
          <li>
            All lines are read using the UTF-8 encoding.
            </li>
          <li>
            Rebex virtual file systems are synchronous. This method is provided only for compatibility with the <see cref="T:System.IO.File" /> API on modern platforms.
            <strong>
            Despite the async suffix this method runs synchronously and returns a string array wrapped in the instance of the Task&lt;string[]&gt; class.
            The <paramref name="cancellationToken" /> is not used.
            If the need to offload the operation to the background thread arise,
            consider using the .NET Task.Run (or TaskFactory.StartNew on older platforms) API
            with the synchronous <see cref="M:Rebex.IO.FileSystem.IO.VFile.ReadAllLines(System.String)" /> method.
            </strong></li>
        </ul>
      </remarks>
    </member>
    <member name="M:Rebex.IO.VFile.ReadLines(System.String)">
      <summary>
            Method returns an enumerable that iterates through the lines from a text file identified by the <paramref name="path" />.
            </summary>
      <param name="path">The path of the file.</param>
      <returns>An enumerable that iterates through the lines from a text file identified by the <paramref name="path" />.</returns>
      <remarks>All lines are read using the UTF-8 encoding.</remarks>
    </member>
    <member name="M:Rebex.IO.VFile.ReadLines(System.String,System.Text.Encoding)">
      <summary>
            Method returns an enumerable that iterates through the lines from a text file identified by the <paramref name="path" />.
            All lines are read using the provided <paramref name="encoding" />.
            </summary>
      <param name="path">The path of the file.</param>
      <param name="encoding">The character encoding.</param>
      <returns>An enumerable that iterates through the lines from a text file identified by the <paramref name="path" />.</returns>
      <remarks>All lines are read using the UTF-8 encoding.</remarks>
    </member>
    <member name="M:Rebex.IO.VFile.ReadAllText(System.String)">
      <summary>
            Method returns a <see cref="T:System.String" /> that contains text content of a file identified by the <paramref name="path" />.
            </summary>
      <param name="path">The path of the file.</param>
      <returns>A <see cref="T:System.String" /> that contains text content of a file identified by the <paramref name="path" />.</returns>
      <remarks>Content of the file is read using the UTF-8 encoding.</remarks>
    </member>
    <member name="M:Rebex.IO.VFile.ReadAllTextAsync(System.String,System.Threading.CancellationToken)">
      <summary>
            Method returns a <see cref="T:System.String" /> that contains text content of a file identified by the <paramref name="path" />.
            </summary>
      <param name="path">The path of the file.</param>
      <param name="cancellationToken">The cancellation token. See remarks for details.</param>
      <returns>A <see cref="T:System.Threading.Tasks.Task`1" />, which wraps text content of a file identified by the <paramref name="path" />.</returns>
      <remarks>
        <ul>
          <li>Content of the file is read using the UTF-8 encoding.</li>
          <li>
            Rebex virtual file systems are synchronous. This method is provided only for compatibility with the <see cref="T:System.IO.File" /> API on modern platforms.
            <strong>
            Despite the async suffix this method runs synchronously and returns a string wrapped in the instance of the Task&lt;string&gt; class.
            The <paramref name="cancellationToken" /> is not used.
            If the need to offload the operation to the background thread arise,
            consider using the .NET Task.Run (or TaskFactory.StartNew on older platforms) API
            with the synchronous <see cref="M:Rebex.IO.FileSystem.IO.VFile.ReadAllText(System.String)" /> method.
            </strong></li>
        </ul>
      </remarks>
    </member>
    <member name="M:Rebex.IO.VFile.ReadAllText(System.String,System.Text.Encoding)">
      <summary>
            Method returns a <see cref="T:System.String" /> that contains text content of a file identified by the <paramref name="path" />.
            Content of the file is read using the provided <paramref name="encoding" />.
            </summary>
      <param name="path">The path of the file.</param>
      <param name="encoding">The character encoding.</param>
      <returns>A <see cref="T:System.String" /> that contains text content of a file identified by the <paramref name="path" />.</returns>
    </member>
    <member name="M:Rebex.IO.VFile.ReadAllTextAsync(System.String,System.Text.Encoding,System.Threading.CancellationToken)">
      <summary>
            Method returns a <see cref="T:System.String" /> that contains text content of a file identified by the <paramref name="path" />.
            Content of the file is read using the provided <paramref name="encoding" />.
            </summary>
      <param name="path">The path of the file.</param>
      <param name="encoding">The character encoding.</param>
      <param name="cancellationToken">The cancellation token. See remarks for details.</param>
      <returns>A <see cref="T:System.Threading.Tasks.Task`1" />, which wraps text content of a file identified by the <paramref name="path" />.</returns>
      <remarks>
            Rebex virtual file systems are synchronous. This method is provided only for compatibility with the <see cref="T:System.IO.File" /> API on modern platforms.
            <strong>
            Despite the async suffix this method runs synchronously and returns a string wrapped in the instance of the Task&lt;string&gt; class.
            The <paramref name="cancellationToken" /> is not used.
            If the need to offload the operation to the background thread arise,
            consider using the .NET Task.Run (or TaskFactory.StartNew on older platforms) API
            with the synchronous <see cref="M:Rebex.IO.FileSystem.IO.VFile.ReadAllText(System.String,System.Text.Encoding)" /> method.
            </strong></remarks>
    </member>
    <member name="M:Rebex.IO.VFile.Replace(System.String,System.String,System.String)">
      <summary>
            Method copies content of the <paramref name="sourceFileName" /> to the <paramref name="destinationFileName" />
            and deletes <paramref name="sourceFileName" />.
            In other words, content of the <paramref name="destinationFileName" /> is replaced by the content of the <paramref name="sourceFileName" />.
            When the <paramref name="destinationBackupFileName" /> is not null then the original (to be replaced) content of the <paramref name="destinationFileName" />
            is stored in the <paramref name="destinationBackupFileName" />.
            </summary>
      <param name="sourceFileName">The path of the source file.</param>
      <param name="destinationFileName">The path of the destination file name.</param>
      <param name="destinationBackupFileName">The path of the backup file name where the original content of the <paramref name="destinationFileName" /> should be stored.
            Can be null - backup of the <paramref name="destinationFileName" /> IS NOT made.</param>
    </member>
    <member name="M:Rebex.IO.VFile.Replace(System.String,System.String,System.String,System.Boolean)">
      <summary>
            Method copies content of the <paramref name="sourceFileName" /> to the <paramref name="destinationFileName" />
            and deletes <paramref name="sourceFileName" />.
            In other words, content of the <paramref name="destinationFileName" /> is replaced by the content of the <paramref name="sourceFileName" />.
            When the <paramref name="destinationBackupFileName" /> is not null then the original (to be replaced) content of the <paramref name="destinationFileName" />
            is stored in the <paramref name="destinationBackupFileName" />.
            </summary>
      <param name="sourceFileName">The path of the source file.</param>
      <param name="destinationFileName">The path of the destination file name.</param>
      <param name="destinationBackupFileName">The path of the backup file name where the original content of the <paramref name="destinationFileName" /> should be stored.
            Can be null - backup of the <paramref name="destinationFileName" /> IS NOT made.</param>
      <param name="ignoreMetadataErrors">The argument is ignored.</param>
    </member>
    <member name="M:Rebex.IO.VFile.SetAttributes(System.String,System.IO.FileAttributes)">
      <summary>
            Method sets <paramref name="fileAttributes" /> for a file identified by the <paramref name="path" />.
            </summary>
      <param name="path">The path of the file.</param>
      <param name="fileAttributes">A new file attributes.</param>
    </member>
    <member name="M:Rebex.IO.VFile.GetCreationTime(System.String)">
      <summary>
            Method returns the creation date and time of a file identified by the <paramref name="path" />.
            </summary>
      <param name="path">The path of the file, for which creation date and time are returned.</param>
      <returns>The creation date and time of of a file identified by the <paramref name="path" />.</returns>
    </member>
    <member name="M:Rebex.IO.VFile.GetCreationTimeUtc(System.String)">
      <summary>
            Method returns the creation date and time of a file identified by the <paramref name="path" />. The time is expressed in the UTC format.
            </summary>
      <param name="path">The path of the file, for which creation date and time are returned.</param>
      <returns>The creation date and time of the directory.</returns>
    </member>
    <member name="M:Rebex.IO.VFile.GetLastAccessTime(System.String)">
      <summary>
            Method returns the last access date and time of a file identified by the <paramref name="path" />.
            </summary>
      <param name="path">The path of the file, for which the last access date and time are returned.</param>
      <returns>The last access date and time of a file identified by the <paramref name="path" />.</returns>
    </member>
    <member name="M:Rebex.IO.VFile.GetLastAccessTimeUtc(System.String)">
      <summary>
            Method returns the last access date and time of a file identified by the <paramref name="path" />. The time is expressed in the UTC format.
            </summary>
      <param name="path">The path of the file, for which the last access date and time are returned.</param>
      <returns>The last access date and time of a file identified by the <paramref name="path" />.</returns>
    </member>
    <member name="M:Rebex.IO.VFile.GetLastWriteTime(System.String)">
      <summary>
            Method returns the last write date and time of a file identified by the <paramref name="path" />.
            </summary>
      <param name="path">The path of the file, for which the last write date and time are returned.</param>
      <returns>The last write date and time of a file identified by the <paramref name="path" />.</returns>
    </member>
    <member name="M:Rebex.IO.VFile.GetLastWriteTimeUtc(System.String)">
      <summary>
            Method returns the last write date and time of a file identified by the <paramref name="path" />. The time is expressed in the UTC format.
            </summary>
      <param name="path">The path of the file, for which the last write date and time are returned.</param>
      <returns>The last write date and time of a file identified by the <paramref name="path" />.</returns>
    </member>
    <member name="M:Rebex.IO.VFile.SetCreationTime(System.String,System.DateTime)">
      <summary>
            Method sets the creation date and time of a file identified by the <paramref name="path" />.
            </summary>
      <param name="path">The path of the file.</param>
      <param name="creationTime">The creation date and time of the file.</param>
    </member>
    <member name="M:Rebex.IO.VFile.SetCreationTimeUtc(System.String,System.DateTime)">
      <summary>
            Method sets the creation date and time of a file identified by the <paramref name="path" />. The time is expressed in the UTC format.
            </summary>
      <param name="path">The path of the file.</param>
      <param name="creationTimeUtc">The creation date and time of the file.</param>
    </member>
    <member name="M:Rebex.IO.VFile.SetLastAccessTime(System.String,System.DateTime)">
      <summary>
            Method sets the last access date and time of a file identified by the <paramref name="path" />.
            </summary>
      <param name="path">The path of the file.</param>
      <param name="lastAccessTime">The last access date and time of the file.</param>
    </member>
    <member name="M:Rebex.IO.VFile.SetLastAccessTimeUtc(System.String,System.DateTime)">
      <summary>
            Method sets the last access date and time of a file identified by the <paramref name="path" />. 
            </summary>
      <param name="path">The path of the file.</param>
      <param name="lastAccessTimeUtc">The last access date and time of the file.</param>
    </member>
    <member name="M:Rebex.IO.VFile.SetLastWriteTime(System.String,System.DateTime)">
      <summary>
            Method sets the last write date and time of a file identified by the <paramref name="path" />.
            </summary>
      <param name="path">The path of the file.</param>
      <param name="lastWriteTime">The last write date and time of the file.</param>
    </member>
    <member name="M:Rebex.IO.VFile.SetLastWriteTimeUtc(System.String,System.DateTime)">
      <summary>
            Method sets the last write date and time of a file identified by the <paramref name="path" />. The time is expressed in the UTC format.
            </summary>
      <param name="path">The path of the file.</param>
      <param name="lastWriteTimeUtc">The last write date and time of the file.</param>
    </member>
    <member name="M:Rebex.IO.VFile.WriteAllBytes(System.String,System.Byte[])">
      <summary>
            Method writes the <paramref name="bytes" /> to a file identified by the <paramref name="path" />.
            </summary>
      <param name="path">The path of the file.</param>
      <param name="bytes">The byte array to write to the <paramref name="path" />.</param>
    </member>
    <member name="M:Rebex.IO.VFile.WriteAllBytesAsync(System.String,System.Byte[],System.Threading.CancellationToken)">
      <summary>
            Method writes the <paramref name="bytes" /> to a file identified by the <paramref name="path" />.
            </summary>
      <param name="path">The path of the file.</param>
      <param name="bytes">The byte array to write to the <paramref name="path" />.</param>
      <param name="cancellationToken">The cancellation token. See remarks for details.</param>
      <returns>A <see cref="T:System.Threading.Tasks.Task" /> that represents the operation. See remarks for details.</returns>
      <remarks>
            Rebex virtual file systems are synchronous. This method is provided only for compatibility with the <see cref="T:System.IO.File" /> API on modern platforms.
            <strong>
            Despite the async suffix this method runs synchronously and returns completed <see cref="T:System.Threading.Tasks.Task" />.
            The <paramref name="cancellationToken" /> is not used.
            If the need to offload the operation to the background thread arise,
            consider using the .NET Task.Run (or TaskFactory.StartNew on older platforms) API
            with the synchronous <see cref="M:Rebex.IO.FileSystem.IO.VFile.WriteAllBytes(System.String,System.Byte[])" /> method.
            </strong></remarks>
    </member>
    <member name="M:Rebex.IO.VFile.WriteAllLines(System.String,System.Collections.Generic.IEnumerable{System.String})">
      <summary>
            Method writes the <paramref name="contents" /> to a file identified by the <paramref name="path" />.
            </summary>
      <param name="path">The path of the file.</param>
      <param name="contents">Lines to write to the <paramref name="path" />.</param>
      <remarks>
        <p>
            The <paramref name="contents" /> is written using the UTF-8 encoding.
            </p>
        <p>
            Method creates the file if it does not exist, opens the file, writes the content and closes the file.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.IO.VFile.WriteAllLinesAsync(System.String,System.Collections.Generic.IEnumerable{System.String},System.Threading.CancellationToken)">
      <summary>
            Method writes the <paramref name="contents" /> to a file identified by the <paramref name="path" />.
            </summary>
      <param name="path">The path of the file.</param>
      <param name="contents">Lines to write to the <paramref name="path" />.</param>
      <param name="cancellationToken">The cancellation token. See remarks for details.</param>
      <returns>A <see cref="T:System.Threading.Tasks.Task" /> that represents the operation. See remarks for details.</returns>
      <remarks>
        <ul>
          <li>Method creates the file if it does not exist, opens the file, writes the content and closes the file.</li>
          <li>
            Rebex virtual file systems are synchronous. This method is provided only for compatibility with the <see cref="T:System.IO.File" /> API on modern platforms.
            <strong>
            Despite the async suffix this method runs synchronously and returns completed <see cref="T:System.Threading.Tasks.Task" />.
            The <paramref name="cancellationToken" /> is not used.
            If the need to offload the operation to the background thread arise,
            consider using the .NET Task.Run (or TaskFactory.StartNew on older platforms) API
            with the synchronous <see cref="M:Rebex.IO.FileSystem.IO.VFile.WriteAllLines(System.String,System.Collections.Generic.IEnumerable{System.String})" /> method.
            </strong></li>
        </ul>
      </remarks>
    </member>
    <member name="M:Rebex.IO.VFile.WriteAllLines(System.String,System.String[])">
      <summary>
            Method writes the <paramref name="contents" /> to a file identified by the <paramref name="path" />.
            </summary>
      <param name="path">The path of the file.</param>
      <param name="contents">Lines to write to the <paramref name="path" />.</param>
      <remarks>
        <p>
            The <paramref name="contents" /> is written using the UTF-8 encoding.
            </p>
        <p>
            Method creates the file if it does not exist, opens the file, writes the content and closes the file.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.IO.VFile.WriteAllLines(System.String,System.String[],System.Text.Encoding)">
      <summary>
            Method writes the <paramref name="contents" /> to a file identified by the <paramref name="path" />
            and using the <paramref name="encoding" />.
            </summary>
      <param name="path">The path of the file.</param>
      <param name="contents">Lines to write to the <paramref name="path" />.</param>
      <param name="encoding">The character encoding.</param>
      <remarks>
        <p>
            Method creates the file if it does not exist, opens the file, writes the content and closes the file.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.IO.VFile.WriteAllLines(System.String,System.Collections.Generic.IEnumerable{System.String},System.Text.Encoding)">
      <summary>
            Method writes the <paramref name="contents" /> to a file identified by the <paramref name="path" />
            and using the <paramref name="encoding" />.
            </summary>
      <param name="path">The path of the file.</param>
      <param name="contents">Lines to write to the <paramref name="path" />.</param>
      <param name="encoding">The character encoding.</param>
      <remarks>
        <p>
            Method creates the file if it does not exist, opens the file, writes the content and closes the file.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.IO.VFile.WriteAllLinesAsync(System.String,System.Collections.Generic.IEnumerable{System.String},System.Text.Encoding,System.Threading.CancellationToken)">
      <summary>
            Method writes the <paramref name="contents" /> to a file identified by the <paramref name="path" />
            and using the <paramref name="encoding" />.
            </summary>
      <param name="path">The path of the file.</param>
      <param name="contents">Lines to write to the <paramref name="path" />.</param>
      <param name="encoding">The character encoding.</param>
      <param name="cancellationToken">The cancellation token. See remarks for details.</param>
      <returns>A <see cref="T:System.Threading.Tasks.Task" /> that represents the operation. See remarks for details.</returns>
      <remarks>
        <ul>
          <li>Method creates the file if it does not exist, opens the file, writes the content and closes the file.</li>
          <li>
            Rebex virtual file systems are synchronous. This method is provided only for compatibility with the <see cref="T:System.IO.File" /> API on modern platforms.
            <strong>
            Despite the async suffix this method runs synchronously and returns completed <see cref="T:System.Threading.Tasks.Task" />.
            The <paramref name="cancellationToken" /> is not used.
            If the need to offload the operation to the background thread arise,
            consider using the .NET Task.Run (or TaskFactory.StartNew on older platforms) API
            with the synchronous <see cref="M:Rebex.IO.FileSystem.IO.VFile.WriteAllLines(System.String,System.Collections.Generic.IEnumerable{System.String},System.Text.Encoding)" /> method.
            </strong></li>
        </ul>
      </remarks>
    </member>
    <member name="M:Rebex.IO.VFile.WriteAllText(System.String,System.String)">
      <summary>
            Method writes the <paramref name="contents" /> to a file identified by the <paramref name="path" />.
            </summary>
      <param name="path">The path of the file.</param>
      <param name="contents">The string to write to the <paramref name="path" />.</param>
      <remarks>
        <p>
            The <paramref name="contents" /> is written using the UTF-8 encoding.
            </p>
        <p>
            Method creates the file if it does not exist, opens the file, writes the content and closes the file.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.IO.VFile.WriteAllTextAsync(System.String,System.String,System.Threading.CancellationToken)">
      <summary>
            Method writes <paramref name="contents" /> to a file identified by the <paramref name="path" />.
            </summary>
      <param name="path">The path of the file.</param>
      <param name="contents">The string to write to the file.</param>
      <param name="cancellationToken">The cancellation token. See remarks for details.</param>
      <returns>A <see cref="T:System.Threading.Tasks.Task" /> that represents the operation. See remarks for details.</returns>
      <remarks>
        <ul>
          <li>
            Method creates the file if it does not exist, opens the file, writes the content and closes the file.
            </li>
          <li>
            Rebex virtual file systems are synchronous. This method is provided only for compatibility with the <see cref="T:System.IO.File" /> API on modern platforms.
            <strong>
            Despite the async suffix this method runs synchronously and returns completed <see cref="T:System.Threading.Tasks.Task" />.
            The <paramref name="cancellationToken" /> is not used.
            If the need to offload the operation to the background thread arise,
            consider using the .NET Task.Run (or TaskFactory.StartNew on older platforms) API
            with the synchronous <see cref="M:Rebex.IO.FileSystem.IO.VFile.WriteAllText(System.String,System.String)" /> method.
            </strong></li>
        </ul>
      </remarks>
    </member>
    <member name="M:Rebex.IO.VFile.WriteAllText(System.String,System.String,System.Text.Encoding)">
      <summary>
            Method writes the <paramref name="contents" /> to a file identified by the <paramref name="path" />
            and using the <paramref name="encoding" />.
            </summary>
      <param name="path">The path of the file.</param>
      <param name="contents">The string to write to the <paramref name="path" />.</param>
      <param name="encoding">The character encoding.</param>
      <remarks>
        <p>
            Method creates the file if it does not exist, opens the file, writes the content and closes the file.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.IO.VFile.WriteAllTextAsync(System.String,System.String,System.Text.Encoding,System.Threading.CancellationToken)">
      <summary>
            Method writes <paramref name="contents" /> to a file identified by the <paramref name="path" />
            and using the <paramref name="encoding" />.
            </summary>
      <param name="path">The path of the file.</param>
      <param name="contents">The string to write to the file.</param>
      <param name="encoding">The character encoding.</param>
      <param name="cancellationToken">The cancellation token. See remarks for details.</param>
      <returns>A <see cref="T:System.Threading.Tasks.Task" /> that represents the operation. See remarks for details.</returns>
      <remarks>
        <ul>
          <li>
            Method creates the file if it does not exist, opens the file, writes the content and closes the file.
            </li>
          <li>
            Rebex virtual file systems are synchronous. This method is provided only for compatibility with the <see cref="T:System.IO.File" /> API on modern platforms.
            <strong>
            Despite the async suffix this method runs synchronously and returns completed <see cref="T:System.Threading.Tasks.Task" />.
            The <paramref name="cancellationToken" /> is not used.
            If the need to offload the operation to the background thread arise,
            consider using the .NET Task.Run (or TaskFactory.StartNew on older platforms) API
            with the synchronous <see cref="M:Rebex.IO.FileSystem.IO.VFile.WriteAllText(System.String,System.String,System.Text.Encoding)" /> method.
            </strong></li>
        </ul>
      </remarks>
    </member>
    <member name="T:Rebex.IO.VFileInfo">
      <summary>
             Class represents a file in the virtual file system.
             This class provides properties and methods that are functionally similar to the standard .NET <see cref="T:System.IO.FileInfo" /> properties and methods.
             </summary>
      <example>
        <code>
             //Create a built-in or custom VFS provider 
            var memoryProvider = new MemoryFileSystemProvider()
             //Save the root path
            var memoryProviderRootPath = memoryProvider.GetRootVDirectoryInfo().FullName;
             //Create a path to the new 'myFile.txt' file.
             var myFileTxtPath = Path.Combine(memoryProviderRootPath, "myFile.txt");
             //Create 'myFile.txt' file and open it for writing
             using (var currentTxtFile = new VFileInfo(myFileTxtPath).CreateText())
             {
                 //Write a line to the file.
                 currentTxtFile.WriteLine("My content");
             }
             </code>
      </example>
      <seealso cref="T:Rebex.IO.VDirectoryInfo" />
      <seealso cref="T:Rebex.IO.VDirectory" />
      <seealso cref="T:Rebex.IO.VFile" />
      <seealso cref="T:Rebex.IO.FileSystem.MemoryFileSystemProvider" />
      <seealso cref="T:Rebex.IO.FileSystem.LocalFileSystemProvider" />
      <seealso cref="T:Rebex.IO.FileSystem.MountCapableFileSystemProvider" />
      <seealso cref="T:Rebex.IO.FileSystem.ReadWriteFileSystemProvider" />
      <seealso cref="T:Rebex.IO.FileSystem.ReadOnlyFileSystemProvider" />
    </member>
    <member name="M:Rebex.IO.VFileInfo.#ctor(System.String)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.IO.VFileInfo" />.
            </summary>
      <param name="path">The path of the file.</param>
    </member>
    <member name="P:Rebex.IO.VFileInfo.VDirectory">
      <summary>
            Gets an instance of the <see cref="T:Rebex.IO.VDirectoryInfo" /> class that represents the parent of this file.
            </summary>
    </member>
    <member name="P:Rebex.IO.VFileInfo.DirectoryName">
      <summary>
            Gets the full path of the parent directory of this file.
            </summary>
    </member>
    <member name="P:Rebex.IO.VFileInfo.IsReadOnly">
      <summary>
            Gets or sets whether this file is read-only.
            </summary>
    </member>
    <member name="P:Rebex.IO.VFileInfo.Length">
      <summary>
            Gets the length, in bytes, of the file.
            </summary>
    </member>
    <member name="M:Rebex.IO.VFileInfo.AppendText">
      <summary>
            Method returns an instance of the <see cref="T:System.IO.StreamWriter" /> for the file.
            </summary>
      <returns>An instance of the <see cref="T:System.IO.StreamWriter" />for the file.</returns>
      <remarks>
            Returned instance of the <see cref="T:System.IO.StreamWriter" /> uses UTF-8 character encoding.
            </remarks>
    </member>
    <member name="M:Rebex.IO.VFileInfo.CopyTo(System.String,System.Boolean)">
      <summary>
            Method copies the file to the location denoted by the <paramref name="destFileName" />.
            </summary>
      <param name="destFileName">The final path of the (copied) file.</param>
      <param name="overwrite">When the overwrite is set to to true  and <paramref name="destFileName" /> exists
            then the destination file is overwritten.
            When the overwrite is set to to false and <paramref name="destFileName" /> exists
            then the <see cref="T:System.IO.IOException" /> is thrown.</param>
    </member>
    <member name="M:Rebex.IO.VFileInfo.CopyTo(System.String)">
      <summary>
            Method copies the file to the location denoted by the <paramref name="destFileName" />.
            </summary>
      <param name="destFileName">The final path of the (copied) file.</param>
    </member>
    <member name="M:Rebex.IO.VFileInfo.Create">
      <summary>
            Method returns read/write instance of the <see cref="T:Rebex.IO.VFileStream" />
            for the file.
            A caller must dispose the returned stream to ensure that the data
            written to the stream are persisted.
            </summary>
      <returns>A read/write instance of the <see cref="T:Rebex.IO.VFileStream" />
            for the file.</returns>
      <remarks>
            Method creates the file if it does not exist.
            When the file exists then the content of the existing file is truncated.
            </remarks>
    </member>
    <member name="M:Rebex.IO.VFileInfo.CreateText">
      <summary>
            Method returns <see cref="T:System.IO.StreamWriter" /> for the file.
            A caller must dispose the returned <see cref="T:System.IO.StreamWriter" /> to ensure that the data
            written to the <see cref="T:System.IO.StreamWriter" /> are persisted.
            </summary>
      <returns>
        <see cref="T:System.IO.StreamWriter" /> for the file.</returns>
      <remarks>
        <p>
            Method creates the file if it does not exist.
            When the file exists then the content of the existing file is truncated.
            </p>
        <p>
            Returned instance of the <see cref="T:System.IO.StreamWriter" /> uses UTF-8 character encoding.
            </p>
      </remarks>
    </member>
    <member name="M:Rebex.IO.VFileInfo.Delete">
      <summary>
            Method deletes the file.
            </summary>
    </member>
    <member name="M:Rebex.IO.VFileInfo.MoveTo(System.String)">
      <summary>
            Method moves the file to the location denoted by the <paramref name="destFileName" />.
            </summary>
      <param name="destFileName">The final path of the (moved) file.</param>
    </member>
    <member name="M:Rebex.IO.VFileInfo.Open(System.IO.FileMode)">
      <summary>
            Method returns an instance of the <see cref="T:Rebex.IO.VFileStream" />
            for the file and required <paramref name="mode" />.
            A caller must dispose the returned stream.
            </summary>
      <param name="mode">One of the <see cref="T:System.IO.FileMode" /> values which determines how to open a file. </param>
      <returns> An instance of the <see cref="T:Rebex.IO.VFileStream" /> for the file and required <paramref name="mode" />.</returns>
    </member>
    <member name="M:Rebex.IO.VFileInfo.Open(System.IO.FileMode,System.IO.FileAccess)">
      <summary>
            Method returns an instance of the <see cref="T:Rebex.IO.VFileStream" />
            for the file, required <paramref name="mode" /> and requested <paramref name="access" />.
            A caller must dispose the returned stream.
            </summary>
      <param name="mode">
            One of the <see cref="T:System.IO.FileMode" /> values which determines how to open a file. </param>
      <param name="access">One of the <see cref="T:System.IO.FileAccess" /> values which determines
            if the returned stream should be read-only stream, write-only stream or read/write stream.</param>
      <returns>An instance of the <see cref="T:Rebex.IO.VFileStream" />
            for the file, required <paramref name="mode" /> and requested <paramref name="access" />.
            </returns>
    </member>
    <member name="M:Rebex.IO.VFileInfo.Open(System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare)">
      <summary>
            Method returns an instance of the <see cref="T:Rebex.IO.VFileStream" />
            for the file, required <paramref name="mode" /> and requested <paramref name="access" />.
            A caller must dispose the returned stream.
            </summary>
      <param name="mode">
            One of the <see cref="T:System.IO.FileMode" /> values which determines  how to open a file. </param>
      <param name="access">One of the <see cref="T:System.IO.FileAccess" /> values which determines
            if the returned stream should be read-only stream, write-only stream or read/write stream. </param>
      <param name="share">This argument is ignored.
            Concurrent access to the same virtual file is not supported and leads to undefined behavior.</param>
      <returns> An instance of the <see cref="T:Rebex.IO.VFileStream" />
            for the file, required <paramref name="mode" /> and requested <paramref name="access" />.
            </returns>
      <remarks>
            Concurrent access to the same virtual file is not supported and leads to undefined behavior.
            </remarks>
    </member>
    <member name="M:Rebex.IO.VFileInfo.OpenRead">
      <summary>
            Method returns an instance of the read-only <see cref="T:Rebex.IO.VFileStream" />.
            A caller must dispose the returned stream.
            Calling the  method is equivalent to calling the method <see cref="M:Rebex.IO.VFileInfo.Open(System.IO.FileMode,System.IO.FileAccess)" />
            with arguments <i>Open(FileMode.Open, FileAccess.Read)</i>.
            </summary>
      <returns> An instance of the read-only <see cref="T:Rebex.IO.VFileStream" /> for the file.</returns>
    </member>
    <member name="M:Rebex.IO.VFileInfo.OpenText">
      <summary>
             Method returns an instance of the <see cref="T:System.IO.StreamReader" /> for the file.
             A caller must dispose the returned <see cref="T:System.IO.StreamWriter" />.
             </summary>
      <returns> An instance of the <see cref="T:System.IO.StreamReader" /> for the file.</returns>
      <remarks>
             Returned instance of the <see cref="T:System.IO.StreamReader" /> uses UTF-8 character encoding.
             </remarks>
    </member>
    <member name="M:Rebex.IO.VFileInfo.OpenWrite">
      <summary>
            Method returns an instance of the write-only <see cref="T:Rebex.IO.VFileStream" /> for the file.
            A caller must dispose the returned stream.
            Calling the  method is equivalent to calling the method <see cref="M:Rebex.IO.VFileInfo.Open(System.IO.FileMode,System.IO.FileAccess)" />
            with arguments <i>Open(FileMode.OpenOrCreate, FileAccess.Write)</i>.
            </summary>
      <returns> An instance of the write-only <see cref="T:Rebex.IO.VFileStream" /> for the file.</returns>
    </member>
    <member name="M:Rebex.IO.VFileInfo.Replace(System.String,System.String)">
      <summary>
            Method copies content of the file to the <paramref name="destinationFileName" />
            and deletes this file.
            In other words, content of the <paramref name="destinationFileName" /> is replaced by the content of this file.
            When the <paramref name="destinationBackupFileName" /> is not null then the original (to be replaced) content of the <paramref name="destinationFileName" />
            is stored in the <paramref name="destinationBackupFileName" />.
            </summary>
      <param name="destinationFileName">The path of the destination file name.</param>
      <param name="destinationBackupFileName">The path of the backup file name where the original content of the <paramref name="destinationFileName" /> should be stored.
            Can be null - backup of the <paramref name="destinationFileName" /> IS NOT made.</param>
    </member>
    <member name="M:Rebex.IO.VFileInfo.Replace(System.String,System.String,System.Boolean)">
      <summary>
            Method copies content of the file to the <paramref name="destinationFileName" />
            and deletes this file.
            In other words, content of the <paramref name="destinationFileName" /> is replaced by the content of this file.
            When the <paramref name="destinationBackupFileName" /> is not null then the original (to be replaced) content of the <paramref name="destinationFileName" />
            is stored in the <paramref name="destinationBackupFileName" />.
            </summary>
      <param name="destinationFileName">The path of the destination file name.</param>
      <param name="destinationBackupFileName">The path of the backup file name where the original content of the <paramref name="destinationFileName" /> should be stored.
            Can be null - backup of the <paramref name="destinationFileName" /> IS NOT made.</param>
      <param name="ignoreMetadataErrors">The argument is ignored.</param>
    </member>
    <member name="T:Rebex.IO.VFileStream">
      <summary>
            Represents a stream for a virtual system file.
            This class provides members that are functionally similar to the standard .NET <see cref="T:System.IO.FileStream" /> members.
            </summary>
    </member>
    <member name="M:Rebex.IO.VFileStream.#ctor(System.String,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare,System.Int32,System.Boolean)">
      <summary>
             Initializes a new instance of the <see cref="T:Rebex.IO.VFileStream" />
             for a file identified by the <paramref name="path" />, required <paramref name="mode" /> and requested <paramref name="access" />.
             A caller must dispose the returned stream.
             Arguments share, bufferSize and useAsync are not used.
             </summary>
      <param name="path">The path of the file.</param>
      <param name="mode">
             One of the <see cref="T:System.IO.FileMode" /> values which determines
             how to open a file. </param>
      <param name="access">One of the <see cref="T:System.IO.FileAccess" /> values which determines
             if the returned stream should be read-only stream, write-only stream or read/write stream.</param>
      <param name="share">This argument is ignored.
             Concurrent access to the same virtual file is not supported and leads to undefined behavior.</param>
      <param name="bufferSize">This argument is ignored.</param>
      <param name="useAsync">This argument is ignored. Rebex virtual file systems now supports only synchronous methods.</param>
      <example>
        <code>
             //Create a built-in or custom VFS provider 
            var memoryProvider = new MemoryFileSystemProvider()
             //Save the root path
            var memoryProviderRootPath = memoryProvider.GetRootVDirectoryInfo().FullName;
             //Create 'file.dat' file in the root directory and open VFileStream for writing.
             using (var myFileStream = new VFileStream(Path.Combine(memoryProviderRootPath, "file.dat"), FileMode.CreateNew, FileAccess.Write))
             {
                 myFileStream.Write(myData, 0, myData.Length);
             }
             </code>
      </example>
      <remarks>
             Concurrent access to the same virtual file is not supported and leads to undefined behavior.
             </remarks>
    </member>
    <member name="M:Rebex.IO.VFileStream.#ctor(System.String,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare,System.Int32)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.IO.VFileStream" />
            for a file identified by the <paramref name="path" />, required <paramref name="mode" /> and requested <paramref name="access" />.
            A caller must dispose the returned stream.
            Arguments share and bufferSize are not used.
            </summary>
      <param name="path">The path of the file.</param>
      <param name="mode">
            One of the <see cref="T:System.IO.FileMode" /> values which determines
            how to open a file. </param>
      <param name="access">One of the <see cref="T:System.IO.FileAccess" /> values which determines
            if the returned stream should be read-only stream, write-only stream or read/write stream.</param>
      <param name="share">This argument is ignored.
            Concurrent access to the same virtual file is not supported and leads to undefined behavior.</param>
      <param name="bufferSize">This argument is ignored.</param>
      <remarks>
            Concurrent access to the same virtual file is not supported and leads to undefined behavior.
            </remarks>
    </member>
    <member name="M:Rebex.IO.VFileStream.#ctor(System.String,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.IO.VFileStream" />
            for a file identified by the <paramref name="path" />, required <paramref name="mode" /> and requested <paramref name="access" />.
            A caller must dispose the returned stream.
            Argument share is not used.
            </summary>
      <param name="path">The path of the file.</param>
      <param name="mode">
            One of the <see cref="T:System.IO.FileMode" /> values which determines
            how to open a file. </param>
      <param name="access">One of the <see cref="T:System.IO.FileAccess" /> values which determines
            if the returned stream should be read-only stream, write-only stream or read/write stream.</param>
      <param name="share">This argument is ignored.
            Concurrent access to the same virtual file is not supported and leads to undefined behavior.</param>
      <remarks>
            Concurrent access to the same virtual file is not supported and leads to undefined behavior.
            </remarks>hh
        </member>
    <member name="M:Rebex.IO.VFileStream.#ctor(System.String,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare,System.Int32,System.IO.FileOptions)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.IO.VFileStream" />
            for a file identified by the <paramref name="path" />, required <paramref name="mode" /> and requested <paramref name="access" />.
            A caller must dispose the returned stream.
            Arguments share, bufferSize are not used.
            </summary>
      <param name="path">The path of the file.</param>
      <param name="mode">
            One of the <see cref="T:System.IO.FileMode" /> values which determines
            how to open a file. </param>
      <param name="access">One of the <see cref="T:System.IO.FileAccess" /> values which determines
            if the returned stream should be read-only stream, write-only stream or read/write stream.</param>
      <param name="share">This argument is ignored.
            Concurrent access to the same virtual file is not supported and leads to undefined behavior.</param>
      <param name="bufferSize">This argument is ignored.</param>
      <param name="options">Only <see cref="F:System.IO.FileOptions.DeleteOnClose" /> option is supported. All other options are ignored.</param>
      <remarks>
            Concurrent access to the same virtual file is not supported and leads to undefined behavior.
            </remarks>
    </member>
    <member name="M:Rebex.IO.VFileStream.#ctor(System.String,System.IO.FileMode)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.IO.VFileStream" />
            for a file identified by the <paramref name="path" />, required <paramref name="mode" /> and with <see cref="F:System.IO.FileAccess.ReadWrite" /> access.
            A caller must dispose the returned stream.
            </summary>
      <param name="path">The path of the file.</param>
      <param name="mode">
            One of the <see cref="T:System.IO.FileMode" /> values which determines
            how to open a file. </param>
    </member>
    <member name="M:Rebex.IO.VFileStream.#ctor(System.String,System.IO.FileMode,System.IO.FileAccess)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.IO.VFileStream" />
            for a file identified by the <paramref name="path" />, required <paramref name="mode" /> and requested <paramref name="access" />.
            A caller must dispose the returned stream.
            Arguments share and bufferSize are not used.
            </summary>
      <param name="path">The path of the file.</param>
      <param name="mode">
            One of the <see cref="T:System.IO.FileMode" /> values which determines
            how to open a file. </param>
      <param name="access">One of the <see cref="T:System.IO.FileAccess" /> values which determines
            if the returned stream should be read-only stream, write-only stream or read/write stream.</param>
    </member>
    <member name="P:Rebex.IO.VFileStream.CanRead">
      <summary>
            Gets a value indicating whether the stream is readable.
            </summary>
    </member>
    <member name="P:Rebex.IO.VFileStream.CanSeek">
      <summary>
            Gets a value indicating whether the stream is seekable.
            </summary>
    </member>
    <member name="P:Rebex.IO.VFileStream.CanWrite">
      <summary>
            Gets a value indicating whether the stream is writable.
            </summary>
    </member>
    <member name="P:Rebex.IO.VFileStream.Length">
      <summary>
            Gets the length of the stream.
            </summary>
    </member>
    <member name="P:Rebex.IO.VFileStream.Position">
      <summary>
            Gets or sets the position within the stream.
            </summary>
    </member>
    <member name="P:Rebex.IO.VFileStream.IsAsync">
      <summary>
            Gets a value that indicates if this stream was opened asynchronously.
            This property always returns false. Rebex virtual file systems now supports only synchronous methods.
            Argument 'async' in <see cref="M:Rebex.IO.FileSystem.IO.VFileStream.#ctor(System.String,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare,System.Int32,System.Boolean)" />
            constructor is ignored.
            </summary>
    </member>
    <member name="P:Rebex.IO.VFileStream.Name">
      <summary>
            Gets the path of the file.
            </summary>
    </member>
    <member name="M:Rebex.IO.VFileStream.Flush">
      <summary>
            Causes any buffered data to be written to the underlying stream.
            </summary>
    </member>
    <member name="M:Rebex.IO.VFileStream.Seek(System.Int64,System.IO.SeekOrigin)">
      <summary>
            Sets the position within the stream.
            </summary>
      <param name="offset">An offset relative to the position specified by <paramref name="origin" />.</param>
      <param name="origin">A value indicating the base position for <paramref name="offset" />.</param>
      <returns>
            The new position within the stream.
            </returns>
    </member>
    <member name="M:Rebex.IO.VFileStream.SetLength(System.Int64)">
      <summary>
            Sets the length of the stream.
            </summary>
      <param name="value">The new length of the stream.</param>
    </member>
    <member name="M:Rebex.IO.VFileStream.Read(System.Byte[],System.Int32,System.Int32)">
      <summary>
            Reads data from the stream.
            </summary>
      <param name="buffer">An array of bytes to receive read data.</param>
      <param name="offset">The offset in buffer at which to begin receiving data.</param>
      <param name="count">The maximum number of bytes to read.</param>
      <returns>The total number of bytes read into the buffer.</returns>
    </member>
    <member name="M:Rebex.IO.VFileStream.Write(System.Byte[],System.Int32,System.Int32)">
      <summary>
            Writes data to the stream.
            </summary>
      <param name="buffer">An array of bytes to write.</param>
      <param name="offset">The offset in buffer at which data to write starts.</param>
      <param name="count">The number of bytes to write.</param>
    </member>
    <member name="M:Rebex.IO.VFileStream.Dispose(System.Boolean)">
      <summary>
            Releases the unmanaged resources used by the <see cref="T:System.IO.Stream" /> and optionally releases the managed resources.
            </summary>
      <param name="disposing">true to release both managed and unmanaged resources; false to release only unmanaged resources.</param>
    </member>
    <member name="T:Rebex.IO.VFileSystemInfo">
      <summary>
            Base class for both <see cref="T:Rebex.IO.VFileInfo" /> and <see cref="T:Rebex.IO.VDirectoryInfo" /> classes.
            This class provides properties and methods that are functionally similar to the standard .NET <see cref="T:System.IO.FileSystemInfo" /> properties and methods.
            </summary>
      <seealso cref="T:Rebex.IO.VDirectoryInfo" />
      <seealso cref="T:Rebex.IO.VFileInfo" />
      <seealso cref="T:Rebex.IO.VDirectory" />
      <seealso cref="T:Rebex.IO.VFile" />
      <seealso cref="T:Rebex.IO.FileSystem.MemoryFileSystemProvider" />
      <seealso cref="T:Rebex.IO.FileSystem.LocalFileSystemProvider" />
      <seealso cref="T:Rebex.IO.FileSystem.MountCapableFileSystemProvider" />
      <seealso cref="T:Rebex.IO.FileSystem.ReadWriteFileSystemProvider" />
      <seealso cref="T:Rebex.IO.FileSystem.ReadOnlyFileSystemProvider" />
    </member>
    <member name="F:Rebex.IO.VFileSystemInfo.FullPath">
      <summary>
            Full path of the node.
            </summary>
    </member>
    <member name="F:Rebex.IO.VFileSystemInfo.OriginalPath">
      <summary>
            Original path of the node.
            <remarks>This path contains only '/' separator even in case a user provides an original path with '\' separator.</remarks></summary>
    </member>
    <member name="M:Rebex.IO.VFileSystemInfo.#ctor(System.String)">
      <summary>
            Initializes a new instance of the <see cref="T:Rebex.IO.VFileSystemInfo" />.
            </summary>
      <param name="path">The path of the <see cref="T:Rebex.IO.VFileInfo" /> or <see cref="T:Rebex.IO.VDirectoryInfo" />.</param>
    </member>
    <member name="P:Rebex.IO.VFileSystemInfo.Attributes">
      <summary>
            Gets or sets the attributes for the file or directory.
            </summary>
    </member>
    <member name="P:Rebex.IO.VFileSystemInfo.CreationTime">
      <summary>
            Gets or sets the creation date and time for the file or directory.
            </summary>
    </member>
    <member name="P:Rebex.IO.VFileSystemInfo.CreationTimeUtc">
      <summary>
            Gets or sets the creation date and time for the file or directory.
            The time is expressed in the UTC format.
            </summary>
    </member>
    <member name="P:Rebex.IO.VFileSystemInfo.Exists">
      <summary>
            Method returns true when the file or directory exists; otherwise returns false.
            </summary>
      <returns>True when the file or directory exists.</returns>
    </member>
    <member name="P:Rebex.IO.VFileSystemInfo.Extension">
      <summary>
            Gets the extension of the file.
            </summary>
    </member>
    <member name="P:Rebex.IO.VFileSystemInfo.FullName">
      <summary>
            Gets the full path of the file.
            </summary>
    </member>
    <member name="P:Rebex.IO.VFileSystemInfo.LastAccessTime">
      <summary>
            Gets or sets the last access date and time for the file or directory.
            </summary>
    </member>
    <member name="P:Rebex.IO.VFileSystemInfo.LastAccessTimeUtc">
      <summary>
            Gets or sets the last access date and time for the file or directory.
            The time is expressed in the UTC format.
            </summary>
    </member>
    <member name="P:Rebex.IO.VFileSystemInfo.LastWriteTime">
      <summary>
            Gets or sets the last write date and time for the file or directory.
            </summary>
    </member>
    <member name="P:Rebex.IO.VFileSystemInfo.LastWriteTimeUtc">
      <summary>
            Gets or sets the last write date and time for the file or directory.
            The time is expressed in the UTC format.
            </summary>
    </member>
    <member name="P:Rebex.IO.VFileSystemInfo.Name">
      <summary>
            Gets the name of the file or directory.
            </summary>
    </member>
    <member name="M:Rebex.IO.VFileSystemInfo.Refresh">
      <summary>
            Method tries to refresh values of properties in this instance.
            </summary>
    </member>
    <member name="M:Rebex.IO.VFileSystemInfo.ToString">
      <summary>
            Method returns the full path of the directory or file.
            </summary>
      <returns>The full path of the directory or file.</returns>
    </member>
  </members>
</doc>