<Type Name="UnixDirectoryInfo" FullName="Mono.Unix.UnixDirectoryInfo">
  <TypeSignature Language="C#" Value="public sealed class UnixDirectoryInfo : Mono.Unix.UnixFileSystemInfo" />
  <AssemblyInfo>
    <AssemblyName>Mono.Posix</AssemblyName>
    <AssemblyVersion>2.0.0.0</AssemblyVersion>
  </AssemblyInfo>
  <ThreadingSafetyStatement>All public static members of this type are safe for multithreaded operations. No instance members are guaranteed to be thread safe.</ThreadingSafetyStatement>
  <Base>
    <BaseTypeName>Mono.Unix.UnixFileSystemInfo</BaseTypeName>
  </Base>
  <Interfaces />
  <Members>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public UnixDirectoryInfo (string path);" />
      <MemberType>Constructor</MemberType>
      <Parameters>
        <Parameter Name="path" Type="System.String" />
      </Parameters>
      <Docs>
        <param name="path">A <see cref="T:System.String" /> containing the directory to query.</param>
        <summary>Creates a new <see cref="T:Mono.Unix.UnixDirectoryInfo" />
        instance containing information about the directory 
        <paramref name="path" />.</summary>
        <exception cref="T:System.ArgumentNullException">
          <paramref name="path" /> is <see langword="null" />.
        </exception>
        <exception cref="T:System.ArgumentException">
          <paramref name="path" /> contains invalid characters; see
          <see cref="M:Mono.Unix.UnixPath.GetInvalidPathChars" />.
        </exception>
        <remarks>
          <para>The <paramref name="path" /> argument is permitted to specify 
          relative or absolute path information. Relative path information is 
          interpreted as relative to the current working directory. 
          <block subset="none" type="note">To obtain the current working 
          directory, see 
          <see cref="M:.Mono.Unix.UnixDirectoryInfo.GetCurrentDirectory" />.
          </block></para>
          <para>It is valid to construct 
          <see cref="T:Mono.Unix.UnixDirectoryInfo" /> objects for directories 
          that do not exist or for files.  However, attempts to use
          the <see cref="T:Mono.Unix.UnixDirectoryInfo" /> instance may
          generate <see cref="T:System.InvalidOperationException" />s.
          Use <see cref="P:Mono.Unix.UnixFileSystemInfo.Exists" /> to see if
          <paramref name="path" /> exists and 
          <see cref="P:Mono.Unix.UnixFileSystemInfo.IsDirectory" /> to ensure
          that <paramref name="path" /> is a directory.</para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="Create">
      <MemberSignature Language="C#" Value="public void Create ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Create the directory 
        <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.</summary>
        <exception cref="T:System.UnauthorizedAccessException">
          <para>Search permission is denied for a component of 
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
            [<see cref="F:Mono.Unix.Native.Errno.EACCESS" />]
            </para>
          <para>-or-</para>
          <para>Write permission is denied on the parent directory of
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
            [<see cref="F:Mono.Unix.Native.Errno.EACCESS" />]
          </para>
        </exception>
        <exception cref="T:System.IO.DirectoryNotFoundException">
          A component of 
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is not a
          directory.
          [<see cref="F:Mono.Unix.Native.Errno.ENOTDIR" />]
        </exception>
        <exception cref="T:System.IO.FileNotFoundException">
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> does not
          exist.
          [<see cref="F:Mono.Unix.Native.Errno.ENOENT" />]
        </exception>
        <exception cref="T:System.IO.IOException">
          <para>An I/O error occurred while making the file system entry or
          allocating the inode.
          [<see cref="F:Mono.Unix.Native.Errno.EIO" />]
          </para>
          <para>-or-</para>
          <para>An I/O error occurred while reading from or writing to the
          file system.
          [<see cref="F:Mono.Unix.Native.Errno.EIO" />]
          </para>
          <para>-or-</para>
          <para>The directory entry to be created resides in a read-only file
          system.
          [<see cref="F:Mono.Unix.Native.Errno.EROFS" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> cannot
          be created because there is no space left on the filesystem that
          will contain the directory.  See
          <see cref="P:Mono.Unix.UnixDriveInfo.AvailableFreeSpace" />.
          [<see cref="F:Mono.Unix.Native.Errno.ENOSPC" />]
          </para>
          <para>-or-</para>
          <para>There are no free inodes on the file system on which the
          directory is being created.
          [<see cref="F:Mono.Unix.Native.Errno.ENOSPC" />]
          </para>
        </exception>
        <exception cref="T:System.IO.PathTooLongException">
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> was too long.
          [<see cref="F:Mono.Unix.Native.Errno.ENAMETOOLONG" />]
        </exception>
        <exception cref="T:Mono.Unix.UnixIOException">
          <para>Too many symbolic links were encountered in translating 
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
          [<see cref="F:Mono.Unix.Native.Errno.ELOOP" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> already
          exists.
          [<see cref="F:Mono.Unix.Native.Errno.EEXIST" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> cannot
          be created because the user's quota of disk blocks on the file
          system that will contain the directory has been exhausted.
          [<see cref="F:Mono.Unix.Native.Errno.EDQUOT" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> cannot
          be created because the user's quota of inodes on the file system on
          which the directory is being created has been exhausted.
          [<see cref="F:Mono.Unix.Native.Errno.EDQUOT" />]
          </para>
        </exception>
        <remarks>This is identical to calling 
        <see cref="M:Mono.Unix.UnixDirectoryInfo.Create" />
        (<see cref="F:Mono.Unix.FileAccessPermissions.AllPermissions" />).</remarks>
      </Docs>
    </Member>
    <Member MemberName="Delete">
      <MemberSignature Language="C#" Value="public void Delete (bool recursive);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="recursive" Type="System.Boolean" />
      </Parameters>
      <Docs>
        <param name="recursive">Specify <see langword="true" /> to delete all files
        and sub-directories in <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />; 
        otherwise, specify <see langword="false" />.</param>
        <summary>Deletes <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
        and, if indicated, removes all files and directories within
        Deletes <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
        </summary>
        <exception cref="T:System.InvalidOperationException">
          <para>The filesystem containing 
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> does not
          support the removal of file system entries.
          [<see cref="F:Mono.Unix.Native.Errno.EPERM" />]
          </para>
          <para>-or-</para>
          <para>The directory containing 
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> 
          has the <see cref="F:Mono.Unix.FileSpecialAttributes.Sticky" /> bit
          set and the process's 
          <see cref="P:Mono.Unix.UnixEnvironment.EffectiveUserId" /> is
          neither the uid of the file to be deleted nor that of the directory
          containing it.
          [<see cref="F:Mono.Unix.Native.Errno.EPERM" />]
          </para>
        </exception>
        <exception cref="T:System.UnauthorizedAccessException">
          <para>Write access to the directory containing
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> was not
          allowed for the processe's effective user id 
          <see cref="P:Mono.Unix.UnixEnvironment.EffectiveUserId" />.
          [<see cref="F:Mono.Unix.Native.Errno.EACCESS" />]
          </para>
          <para>-or-</para>
          <para>One of the directories in 
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> did not have
          search (execute) permissions.
          [<see cref="F:Mono.Unix.Native.Errno.EACCESS" />]
          </para>
        </exception>
        <exception cref="T:System.IO.DirectoryNotFoundException">
          A component of 
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is not a
          directory.  
          [<see cref="F:Mono.Unix.Native.Errno.ENOTDIR" />]
        </exception>
        <exception cref="T:System.IO.FileNotFoundException">
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> does not
          exist.
          [<see cref="F:Mono.Unix.Native.Errno.ENOENT" />]
        </exception>
        <exception cref="T:System.IO.IOException">
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> contains 
          files other than '<c>.</c>' and '<c>..</c>' in it.
          [<see cref="F:Mono.Unix.Native.Errno.ENOTEMPTY" />]
          </para>
          <para>-or-</para>
          <para>An I/O error occurred while deleting the file system entry or
          deallocating the inode.
          [<see cref="F:Mono.Unix.Native.Errno.EIO" />]
          </para>
          <para>-or-</para>
          <para>The directory entry to be removed resides in a read-only file
          system.
          [<see cref="F:Mono.Unix.Native.Errno.EROFS" />]
          </para>
        </exception>
        <exception cref="T:System.IO.PathTooLongException">
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> was too long.
          [<see cref="F:Mono.Unix.Native.Errno.ENAMETOOLONG" />]
        </exception>
        <exception cref="T:Mono.Unix.UnixIOException">
          <para>Too many symbolic links were encountered in translating 
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
          [<see cref="F:Mono.Unix.Native.Errno.ELOOP" />]
          </para>
          <para>-or-</para>
          <para>The directory to be removed is the mount point for a mounted
          filesystem.
          [<see cref="F:Mono.Unix.Native.Errno.EBUSY" />]
          </para>
        </exception>
        <remarks>
          <para>
            <see langword="false" /> is the default value for the 
          <paramref name="recursive" /> parameter.  Thus, 
          <see cref="M:Mono.Unix.UnixFileSystemInfo.Delete" /> is not a
          recursive delete.</para>
        </remarks>
        <altmember cref="M:Mono.Unix.Native.rmdir" />
      </Docs>
    </Member>
    <Member MemberName="GetFileSystemEntries">
      <MemberSignature Language="C#" Value="public Mono.Unix.UnixFileSystemInfo[] GetFileSystemEntries ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Mono.Unix.UnixFileSystemInfo[]</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Returnes all the file system entries 
        the <see cref="P:Mono.Unix.UnixFileSystemInfo.FullPath" /> directory.</summary>
        <exception cref="T:System.UnauthorizedAccessException">
          The process cannot access <see cref="P:Mono.Unix.UnixFileSystemInfo.FullPath" />.
          [<see cref="F:Mono.Unix.Native.Errno.EACCESS" />]
        </exception>
        <exception cref="T:System.IO.DirectoryNotFoundException">
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullPath" /> is not a
          directory.
          [<see cref="F:Mono.Unix.Native.Errno.ENOTDIR" />]
        </exception>
        <exception cref="T:System.IO.FileNotFoundException">
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullPath" /> doesn't exist,
          or is an empty string.
          [<see cref="F:Mono.Unix.Native.Errno.ENOENT" />]
        </exception>
        <exception cref="T:Mono.Unix.UnixIOException">
          <para>Insufficient memory to complete the operation.
          [<see cref="F:Mono.Unix.Native.Errno.ENOMEM" />]
          </para>
          <para>-or-</para>
          <para>Too many file descriptors in use by the process.
          [<see cref="F:Mono.Unix.Native.Errno.EMFILE" />]
          </para>
          <para>-or-</para>
          <para>Too many files are currently open in the system.
          [<see cref="F:Mono.Unix.Native.Errno.ENFILE" />]
          </para>
        </exception>
        <returns>A <see cref="T:Mono.Unix.UnixFileSystemInfo" /> array containing
        all file system entries within the 
        <see cref="P:Mono.Unix.UnixFileSystemInfo.FullPath" /> directory.
        </returns>
        <remarks>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="GetFileSystemEntries">
      <MemberSignature Language="C#" Value="public Mono.Unix.UnixFileSystemInfo[] GetFileSystemEntries (System.Text.RegularExpressions.Regex regex);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Mono.Unix.UnixFileSystemInfo[]</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="regex" Type="System.Text.RegularExpressions.Regex" />
      </Parameters>
      <Docs>
        <param name="regex">A 
        <see cref="T:System.Text.RegularExpressions.Regex" /> instance which
        is used for matching against directory entry names.</param>
        <summary>Returnes all the file system entries 
        the <see cref="P:Mono.Unix.UnixFileSystemInfo.FullPath" /> directory.</summary>
        <exception cref="T:System.UnauthorizedAccessException">
          The process cannot access <see cref="P:Mono.Unix.UnixFileSystemInfo.FullPath" />.
          [<see cref="F:Mono.Unix.Native.Errno.EACCESS" />]
        </exception>
        <exception cref="T:System.IO.DirectoryNotFoundException">
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullPath" /> is not a
          directory.
          [<see cref="F:Mono.Unix.Native.Errno.ENOTDIR" />]
        </exception>
        <exception cref="T:System.IO.FileNotFoundException">
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullPath" /> doesn't exist,
          or is an empty string.
          [<see cref="F:Mono.Unix.Native.Errno.ENOENT" />]
        </exception>
        <exception cref="T:Mono.Unix.UnixIOException">
          <para>Insufficient memory to complete the operation.
            [<see cref="F:Mono.Unix.Native.Errno.ENOMEM" />]
          </para>
          <para>-or-</para>
          <para>Too many file descriptors in use by the process.
            [<see cref="F:Mono.Unix.Native.Errno.EMFILE" />]
          </para>
          <para>-or-</para>
          <para>Too many files are currently open in the system.
            [<see cref="F:Mono.Unix.Native.Errno.ENFILE" />]
          </para>
        </exception>
        <returns>A <see cref="T:Mono.Unix.UnixFileSystemInfo" /> array containing
        all file system entries within the 
        <see cref="P:Mono.Unix.UnixFileSystemInfo.FullPath" /> directory.
        </returns>
        <remarks>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="GetFileSystemEntries">
      <MemberSignature Language="C#" Value="public Mono.Unix.UnixFileSystemInfo[] GetFileSystemEntries (string regex);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Mono.Unix.UnixFileSystemInfo[]</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="regex" Type="System.String" />
      </Parameters>
      <Docs>
        <param name="regex">A <see cref="T:System.String" /> containing a
        regular expression that is used for matching against directory entry
        names.</param>
        <summary>Returnes all the file system entries 
        the <see cref="P:Mono.Unix.UnixFileSystemInfo.FullPath" /> directory.</summary>
        <exception cref="T:System.UnauthorizedAccessException">
          The process cannot access <see cref="P:Mono.Unix.UnixFileSystemInfo.FullPath" />.
          [<see cref="F:Mono.Unix.Native.Errno.EACCESS" />]
        </exception>
        <exception cref="T:System.IO.DirectoryNotFoundException">
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullPath" /> is not a
          directory.
          [<see cref="F:Mono.Unix.Native.Errno.ENOTDIR" />]
        </exception>
        <exception cref="T:System.IO.FileNotFoundException">
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullPath" /> doesn't exist,
          or is an empty string.
          [<see cref="F:Mono.Unix.Native.Errno.ENOENT" />]
        </exception>
        <exception cref="T:Mono.Unix.UnixIOException">
          <para>Insufficient memory to complete the operation.
          [<see cref="F:Mono.Unix.Native.Errno.ENOMEM" />]
          </para>
          <para>-or-</para>
          <para>Too many file descriptors in use by the process.
          [<see cref="F:Mono.Unix.Native.Errno.EMFILE" />]
          </para>
          <para>-or-</para>
          <para>Too many files are currently open in the system.
          [<see cref="F:Mono.Unix.Native.Errno.ENFILE" />]
          </para>
        </exception>
        <returns>A <see cref="T:Mono.Unix.UnixFileSystemInfo" /> array containing
        all file system entries within the 
        <see cref="P:Mono.Unix.UnixFileSystemInfo.FullPath" /> directory.
        </returns>
        <remarks>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="Parent">
      <MemberSignature Language="C#" Value="public Mono.Unix.UnixDirectoryInfo Parent { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Mono.Unix.UnixDirectoryInfo</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>Gets information about the parent directory.</summary>
        <value>If the parent directory can be found, a 
        <see cref="T:Mono.Unix.UnixDirectoryInfo" /> instance
        containing information about the parent directory.  Otherwise, 
        <see langword="null" /> is returned.</value>
        <remarks>
        </remarks>
        <altmember cref="M:Mono.Unix.UnixPath.GetDirectoryName" />
      </Docs>
    </Member>
    <Member MemberName="Root">
      <MemberSignature Language="C#" Value="public Mono.Unix.UnixDirectoryInfo Root { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Mono.Unix.UnixDirectoryInfo</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>Gets the path root component of
        <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />. </summary>
        <value>A <see cref="T:Mono.Unix.UnixDirectoryInfo" /> containing
        information about the path root component for
        <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.</value>
        <remarks>This is generally identical to 
        <c>new <see cref="T:Mono.Unix.UnixDirectoryInfo" />("/")</c>.</remarks>
        <altmember cref="M:Mono.Unix.UnixPath.GetPathRoot" />
      </Docs>
    </Member>
    <Member MemberName="Create">
      <MemberSignature Language="C#" Value="public void Create (Mono.Unix.Native.FilePermissions mode);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="mode" Type="Mono.Unix.Native.FilePermissions" />
      </Parameters>
      <Docs>
        <param name="mode">A 
        <see cref="T:Mono.Unix.Native.FilePermissions" /> instance containing
        the file permissions the created directory should have.</param>
        <summary>Create the directory 
        <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.</summary>
        <exception cref="T:System.UnauthorizedAccessException">
          <para>Search permission is denied for a component of 
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
          [<see cref="F:Mono.Unix.Native.Errno.EACCESS" />]
          </para>
          <para>-or-</para>
          <para>Write permission is denied on the parent directory of
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
          [<see cref="F:Mono.Unix.Native.Errno.EACCESS" />]
          </para>
        </exception>
        <exception cref="T:System.IO.DirectoryNotFoundException">
          A component of 
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is not a
          directory.
          [<see cref="F:Mono.Unix.Native.Errno.ENOTDIR" />]
        </exception>
        <exception cref="T:System.IO.FileNotFoundException">
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> does not
          exist.
          [<see cref="F:Mono.Unix.Native.Errno.ENOENT" />]
        </exception>
        <exception cref="T:System.IO.IOException">
          <para>An I/O error occurred while making the file system entry or
          allocating the inode.
          [<see cref="F:Mono.Unix.Native.Errno.EIO" />]
          </para>
          <para>-or-</para>
          <para>An I/O error occurred while reading from or writing to the
          file system.
          [<see cref="F:Mono.Unix.Native.Errno.EIO" />]
          </para>
          <para>-or-</para>
          <para>The directory entry to be created resides in a read-only file
          system.
          [<see cref="F:Mono.Unix.Native.Errno.EROFS" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> cannot
          be created because there is no space left on the filesystem that
          will contain the directory.  See
          <see cref="P:Mono.Unix.UnixDriveInfo.AvailableFreeSpace" />.
          [<see cref="F:Mono.Unix.Native.Errno.ENOSPC" />]
          </para>
          <para>-or-</para>
          <para>There are no free inodes on the file system on which the
          directory is being created.
          [<see cref="F:Mono.Unix.Native.Errno.ENOSPC" />]
          </para>
        </exception>
        <exception cref="T:System.IO.PathTooLongException">
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> was too long.
          [<see cref="F:Mono.Unix.Native.Errno.ENAMETOOLONG" />]
        </exception>
        <exception cref="T:Mono.Unix.UnixIOException">
          <para>Too many symbolic links were encountered in translating 
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
          [<see cref="F:Mono.Unix.Native.Errno.ELOOP" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> already
          exists.
          [<see cref="F:Mono.Unix.Native.Errno.EEXIST" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> cannot
          be created because the user's quota of disk blocks on the file
          system that will contain the directory has been exhausted.
          [<see cref="F:Mono.Unix.Native.Errno.EDQUOT" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> cannot
          be created because the user's quota of inodes on the file system on
          which the directory is being created has been exhausted.
          [<see cref="F:Mono.Unix.Native.Errno.EDQUOT" />]
          </para>
        </exception>
        <remarks>
        </remarks>
        <altmember cref="M:Mono.Unix.Native.Syscall.mkdir" />
      </Docs>
    </Member>
    <Member MemberName="Create">
      <MemberSignature Language="C#" Value="public void Create (Mono.Unix.FileAccessPermissions mode);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="mode" Type="Mono.Unix.FileAccessPermissions" />
      </Parameters>
      <Docs>
        <param name="mode">A 
        <see cref="T:Mono.Unix.Native.FilePermissions" /> instance containing
        the file permissions the created directory should have.</param>
        <summary>Create the directory 
        <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.</summary>
        <exception cref="T:System.UnauthorizedAccessException">
          <para>Search permission is denied for a component of 
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
          [<see cref="F:Mono.Unix.Native.Errno.EACCESS" />]
          </para>
          <para>-or-</para>
          <para>Write permission is denied on the parent directory of
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
          [<see cref="F:Mono.Unix.Native.Errno.EACCESS" />]
          </para>
        </exception>
        <exception cref="T:System.IO.DirectoryNotFoundException">
          A component of 
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is not a
          directory.
          [<see cref="F:Mono.Unix.Native.Errno.ENOTDIR" />]
        </exception>
        <exception cref="T:System.IO.FileNotFoundException">
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> does not
          exist.
          [<see cref="F:Mono.Unix.Native.Errno.ENOENT" />]
        </exception>
        <exception cref="T:System.IO.IOException">
          <para>An I/O error occurred while making the file system entry or
          allocating the inode.
          [<see cref="F:Mono.Unix.Native.Errno.EIO" />]
          </para>
          <para>-or-</para>
          <para>An I/O error occurred while reading from or writing to the
          file system.
          [<see cref="F:Mono.Unix.Native.Errno.EIO" />]
          </para>
          <para>-or-</para>
          <para>The directory entry to be created resides in a read-only file
          system.
          [<see cref="F:Mono.Unix.Native.Errno.EROFS" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> cannot
          be created because there is no space left on the filesystem that
          will contain the directory.  See
          <see cref="P:Mono.Unix.UnixDriveInfo.AvailableFreeSpace" />.
          [<see cref="F:Mono.Unix.Native.Errno.ENOSPC" />]
          </para>
          <para>-or-</para>
          <para>There are no free inodes on the file system on which the
          directory is being created.
          [<see cref="F:Mono.Unix.Native.Errno.ENOSPC" />]
          </para>
        </exception>
        <exception cref="T:System.IO.PathTooLongException">
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> was too long.
          [<see cref="F:Mono.Unix.Native.Errno.ENAMETOOLONG" />]
        </exception>
        <exception cref="T:Mono.Unix.UnixIOException">
          <para>Too many symbolic links were encountered in translating 
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
          [<see cref="F:Mono.Unix.Native.Errno.ELOOP" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> already
          exists.
          [<see cref="F:Mono.Unix.Native.Errno.EEXIST" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> cannot
          be created because the user's quota of disk blocks on the file
          system that will contain the directory has been exhausted.
          [<see cref="F:Mono.Unix.Native.Errno.EDQUOT" />]
          </para>
          <para>-or-</para>
          <para>
            <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> cannot
          be created because the user's quota of inodes on the file system on
          which the directory is being created has been exhausted.
          [<see cref="F:Mono.Unix.Native.Errno.EDQUOT" />]
          </para>
        </exception>
        <remarks>
        </remarks>
        <altmember cref="M:Mono.Unix.Native.Syscall.mkdir" />
      </Docs>
    </Member>
    <Member MemberName="GetCurrentDirectory">
      <MemberSignature Language="C#" Value="public static string GetCurrentDirectory ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Returns the application's current working directory.</summary>
        <exception cref="T:System.UnauthorizedAccessException">
          Permission to read or search a component of the current working
          directory was denied.
          [<see cref="F:Mono.Unix.Native.Errno.EACCESS" />]
        </exception>
        <exception cref="T:System.IO.FileNotFoundException">
          The current working directory has been unlinked.
          [<see cref="F:Mono.Unix.Native.Errno.ENOENT" />]
        </exception>
        <returns>
          <para>A <see cref="T:System.String" /> containing the path of the current working directory.</para>
        </returns>
        <remarks>
        </remarks>
        <altmember cref="M:Mono.Unix.Native.Syscall.getcwd" />
      </Docs>
    </Member>
    <Member MemberName="SetCurrentDirectory">
      <MemberSignature Language="C#" Value="public static void SetCurrentDirectory (string path);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="path" Type="System.String" />
      </Parameters>
      <Docs>
        <param name="path">A <see cref="T:System.String" /> containing the path to which the current working directory is set.</param>
        <summary>Sets the application's current working directory to the
        specified directory.</summary>
        <exception cref="T:System.UnauthorizedAccessException">
          The process cannot access <paramref name="path" />.
          [<see cref="F:Mono.Unix.Native.Errno.EACCESS" />]
        </exception>
        <exception cref="T:System.IO.DirectoryNotFoundException">
          A component of <paramref name="path" /> is not a directory.
          [<see cref="F:Mono.Unix.Native.Errno.ENOTDIR" />]
        </exception>
        <exception cref="T:System.IO.FileNotFoundException">
          <paramref name="path" /> does not exist.
          [<see cref="F:Mono.Unix.Native.Errno.ENOENT" />]
        </exception>
        <exception cref="T:System.IO.PathTooLongException">
          <paramref name="path" /> is too long.
          [<see cref="F:Mono.Unix.Native.Errno.ENAMETOOLONG" />]
        </exception>
        <exception cref="T:System.IO.IOException">
          An I/O error occurred.
          [<see cref="F:Mono.Unix.Native.Errno.EIO" />]
        </exception>
        <exception cref="T:Mono.Unix.UnixIOException">
          Too many symbolic links were encountered in resolving 
          <paramref name="path" />.
          [<see cref="F:Mono.Unix.Native.Errno.ELOOP" />]
        </exception>
        <remarks>
          <para>The <paramref name="path" /> argument is permitted to specify
          relative or absolute path information. Relative path information is 
          interpreted as relative to the current working directory. 
          <block subset="none" type="note">To obtain the current working 
          directory, see 
          <see cref="M:Mono.Unix.UnixDirectoryInfo.GetCurrentDirectory" qualify="true" />.
          </block></para>
        </remarks>
        <altmember cref="M:Mono.Unix.Native.Syscall.chdir" />
      </Docs>
    </Member>
    <Member MemberName="GetEntries">
      <MemberSignature Language="C#" Value="public Mono.Unix.Native.Dirent[] GetEntries ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Mono.Unix.Native.Dirent[]</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>Returnes the directory entries of all file system entries in
        the <see cref="P:Mono.Unix.UnixFileSystemInfo.FullPath" /> directory.</summary>
        <exception cref="T:System.UnauthorizedAccessException">
          The process cannot access <see cref="P:Mono.Unix.UnixFileSystemInfo.FullPath" />.
          [<see cref="F:Mono.Unix.Native.Errno.EACCESS" />]
        </exception>
        <exception cref="T:System.IO.DirectoryNotFoundException">
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullPath" /> is not a
          directory.
          [<see cref="F:Mono.Unix.Native.Errno.ENOTDIR" />]
        </exception>
        <exception cref="T:System.IO.FileNotFoundException">
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullPath" /> doesn't exist,
          or is an empty string.
          [<see cref="F:Mono.Unix.Native.Errno.ENOENT" />]
        </exception>
        <exception cref="T:Mono.Unix.UnixIOException">
          <para>Insufficient memory to complete the operation.
          [<see cref="F:Mono.Unix.Native.Errno.ENOMEM" />]
          </para>
          <para>-or-</para>
          <para>Too many file descriptors in use by the process.
          [<see cref="F:Mono.Unix.Native.Errno.EMFILE" />]
          </para>
          <para>-or-</para>
          <para>Too many files are currently open in the system.
          [<see cref="F:Mono.Unix.Native.Errno.ENFILE" />]
          </para>
        </exception>
        <returns>A <see cref="T:Mono.Unix.Native.Dirent" /> array containing
        all file system entries within the 
        <see cref="P:Mono.Unix.UnixFileSystemInfo.FullPath" /> directory.
        </returns>
        <remarks>
          <para>The <see cref="F:Mono.Unix.Native.Dirent.d_name" /> field of
          the returned <see cref="T:Mono.Unix.Native.Dirent" /> instances only
          contains the file system entry name, not the fully qualified file
          system entry name.  Thus, to use these values in further code they
          must be qualified with 
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />, e.g.
          <c>
              <see cref="M:Mono.Unix.UnixPath.Combine" />
          (<see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />, 
          <paramref name="dirent[index]" />.<see cref="F:Mono.Unix.Native.Dirent.d_name" />)</c>.</para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="GetEntries">
      <MemberSignature Language="C#" Value="public Mono.Unix.Native.Dirent[] GetEntries (System.Text.RegularExpressions.Regex regex);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Mono.Unix.Native.Dirent[]</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="regex" Type="System.Text.RegularExpressions.Regex" />
      </Parameters>
      <Docs>
        <param name="regex">A 
        <see cref="T:System.Text.RegularExpressions.Regex" /> instance which
        is used for matching against directory entry names.</param>
        <summary>Returnes the directory entries of all file system entries in
        the <see cref="P:Mono.Unix.UnixFileSystemInfo.FullPath" /> directory 
        that match the provided regular expression <paramref name="regex" />.</summary>
        <exception cref="T:System.UnauthorizedAccessException">
          The process cannot access <see cref="P:Mono.Unix.UnixFileSystemInfo.FullPath" />.
          [<see cref="F:Mono.Unix.Native.Errno.EACCESS" />]
        </exception>
        <exception cref="T:System.IO.DirectoryNotFoundException">
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullPath" /> is not a
          directory.
          [<see cref="F:Mono.Unix.Native.Errno.ENOTDIR" />]
        </exception>
        <exception cref="T:System.IO.FileNotFoundException">
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullPath" /> doesn't exist,
          or is an empty string.
          [<see cref="F:Mono.Unix.Native.Errno.ENOENT" />]
        </exception>
        <exception cref="T:Mono.Unix.UnixIOException">
          <para>Insufficient memory to complete the operation.
          [<see cref="F:Mono.Unix.Native.Errno.ENOMEM" />]
          </para>
          <para>-or-</para>
          <para>Too many file descriptors in use by the process.
          [<see cref="F:Mono.Unix.Native.Errno.EMFILE" />]
          </para>
          <para>-or-</para>
          <para>Too many files are currently open in the system.
          [<see cref="F:Mono.Unix.Native.Errno.ENFILE" />]
          </para>
        </exception>
        <returns>A <see cref="T:Mono.Unix.Native.Dirent" /> array containing
        all file system entries within the 
        <see cref="P:Mono.Unix.UnixFileSystemInfo.FullPath" /> directory.
        </returns>
        <remarks>
          <para>
            <paramref name="regex" /> is matched against 
          <see cref="F:Mono.Unix.Native.Dirent.d_name" /> for all file system
          entries found.</para>
          <para>The <see cref="F:Mono.Unix.Native.Dirent.d_name" /> field of
          the returned <see cref="T:Mono.Unix.Native.Dirent" /> instances only
          contains the file system entry name, not the fully qualified file
          system entry name.  Thus, to use these values in further code they
          must be qualified with 
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />, e.g.
          <c>
              <see cref="M:Mono.Unix.UnixPath.Combine" />
          (<see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />, 
          <paramref name="dirent[index]" />.<see cref="F:Mono.Unix.Native.Dirent.d_name" />)</c>.</para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="GetEntries">
      <MemberSignature Language="C#" Value="public Mono.Unix.Native.Dirent[] GetEntries (string regex);" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>Mono.Unix.Native.Dirent[]</ReturnType>
      </ReturnValue>
      <Parameters>
        <Parameter Name="regex" Type="System.String" />
      </Parameters>
      <Docs>
        <param name="regex">A <see cref="T:System.String" /> containing a
        regular expression that is used for matching against directory entry
        names.</param>
        <summary>Returnes the directory entries of all file system entries in
        the <see cref="P:Mono.Unix.UnixFileSystemInfo.FullPath" /> directory 
        that match the provided regular expression <paramref name="regex" />.</summary>
        <exception cref="T:System.UnauthorizedAccessException">
          The process cannot access <see cref="P:Mono.Unix.UnixFileSystemInfo.FullPath" />.
          [<see cref="F:Mono.Unix.Native.Errno.EACCESS" />]
        </exception>
        <exception cref="T:System.IO.DirectoryNotFoundException">
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullPath" /> is not a
          directory.
          [<see cref="F:Mono.Unix.Native.Errno.ENOTDIR" />]
        </exception>
        <exception cref="T:System.IO.FileNotFoundException">
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullPath" /> doesn't exist,
          or is an empty string.
          [<see cref="F:Mono.Unix.Native.Errno.ENOENT" />]
        </exception>
        <exception cref="T:Mono.Unix.UnixIOException">
          <para>Insufficient memory to complete the operation.
          [<see cref="F:Mono.Unix.Native.Errno.ENOMEM" />]
          </para>
          <para>-or-</para>
          <para>Too many file descriptors in use by the process.
          [<see cref="F:Mono.Unix.Native.Errno.EMFILE" />]
          </para>
          <para>-or-</para>
          <para>Too many files are currently open in the system.
          [<see cref="F:Mono.Unix.Native.Errno.ENFILE" />]
          </para>
        </exception>
        <returns>A <see cref="T:Mono.Unix.Native.Dirent" /> array containing
        all file system entries within the 
        <see cref="P:Mono.Unix.UnixFileSystemInfo.FullPath" /> directory.
        </returns>
        <remarks>
          <para>
            <paramref name="regex" /> is matched against 
          <see cref="F:Mono.Unix.Native.Dirent.d_name" /> for all file system
          entries found.</para>
          <para>The <see cref="F:Mono.Unix.Native.Dirent.d_name" /> field of
          the returned <see cref="T:Mono.Unix.Native.Dirent" /> instances only
          contains the file system entry name, not the fully qualified file
          system entry name.  Thus, to use these values in further code they
          must be qualified with 
          <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />, e.g.
          <c>
              <see cref="M:Mono.Unix.UnixPath.Combine" />
          (<see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />, 
          <paramref name="dirent[index]" />.<see cref="F:Mono.Unix.Native.Dirent.d_name" />)</c>.</para>
        </remarks>
      </Docs>
    </Member>
    <Member MemberName="Delete">
      <MemberSignature Language="C#" Value="public override void Delete ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>To be added.</summary>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="Name">
      <MemberSignature Language="C#" Value="public override string Name { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>System.String</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>To be added.</summary>
        <value>To be added.</value>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
  </Members>
  <Docs>
    <summary>Represents information about a directory in the filesystem.</summary>
    <remarks>
      <para>The <see cref="T:Mono.Unix.UnixDirectoryInfo" /> class presents
      information about a directory.  It also allows basic manipulations of 
      filesystem structure:</para>
      <list type="bullet">
        <item>
          <term>Directory creation with 
          <see cref="M:Mono.Unix.UnixDirectoryInfo.Create" />.</term>
        </item>
        <item>
          <term>Directory deletion (and optional file deletion) with 
          <see cref="M:Mono.Unix.UnixDirectoryInfo.Delete" />.</term>
        </item>
        <item>
          <term>Movement with 
          <see cref="M:Mono.Unix.UnixDirectoryInfo.SetCurrentDirectory" />.</term>
        </item>
        <item>
          <term>Listing with <see cref="M:Mono.Unix.UnixDirectoryInfo.GetEntries" /> and 
          <see cref="M:Mono.Unix.UnixDirectoryInfo.GetFileSystemEntries" />.</term>
        </item>
      </list>
    </remarks>
    <altmember cref="T:Mono.Unix.UnixFileInfo" />
    <altmember cref="T:Mono.Unix.UnixSymbolicLinkInfo" />
  </Docs>
</Type>
