Author: jonpryor
Date: 2006-01-17 07:38:04 -0500 (Tue, 17 Jan 2006)
New Revision: 55678
Modified:
trunk/monodoc/class/Mono.Posix/en/Mono.Unix/UnixDirectoryInfo.xml
trunk/monodoc/class/Mono.Posix/en/Mono.Unix/UnixFileInfo.xml
trunk/monodoc/class/Mono.Posix/en/Mono.Unix/UnixFileSystemInfo.xml
trunk/monodoc/class/Mono.Posix/en/Mono.Unix/UnixSymbolicLinkInfo.xml
Log:
Flush.
Modified: trunk/monodoc/class/Mono.Posix/en/Mono.Unix/UnixDirectoryInfo.xml
===================================================================
--- trunk/monodoc/class/Mono.Posix/en/Mono.Unix/UnixDirectoryInfo.xml
2006-01-17 12:09:08 UTC (rev 55677)
+++ trunk/monodoc/class/Mono.Posix/en/Mono.Unix/UnixDirectoryInfo.xml
2006-01-17 12:38:04 UTC (rev 55678)
@@ -26,7 +26,7 @@
</exception>
<exception cref="T:System.ArgumentException">
<paramref name="path" /> contains invalid characters; see
- <see cref="F:Mono.Unix.UnixPath.InvalidPathChars" />.
+ <see cref="M:Mono.Unix.UnixPath.GetInvalidPathChars" />.
</exception>
<remarks>
<para>The <paramref name="path" /> argument is permitted to specify
Modified: trunk/monodoc/class/Mono.Posix/en/Mono.Unix/UnixFileInfo.xml
===================================================================
--- trunk/monodoc/class/Mono.Posix/en/Mono.Unix/UnixFileInfo.xml
2006-01-17 12:09:08 UTC (rev 55677)
+++ trunk/monodoc/class/Mono.Posix/en/Mono.Unix/UnixFileInfo.xml
2006-01-17 12:38:04 UTC (rev 55678)
@@ -27,7 +27,7 @@
</exception>
<exception cref="T:System.ArgumentException">
<paramref name="path" /> contains invalid characters; see
- <see cref="F:Mono.Unix.UnixPath.InvalidPathChars" />.
+ <see cref="M:Mono.Unix.UnixPath.GetInvalidPathChars" />.
</exception>
<remarks>
<para>The <paramref name="path" /> argument is permitted to specify
Modified: trunk/monodoc/class/Mono.Posix/en/Mono.Unix/UnixFileSystemInfo.xml
===================================================================
--- trunk/monodoc/class/Mono.Posix/en/Mono.Unix/UnixFileSystemInfo.xml
2006-01-17 12:09:08 UTC (rev 55677)
+++ trunk/monodoc/class/Mono.Posix/en/Mono.Unix/UnixFileSystemInfo.xml
2006-01-17 12:38:04 UTC (rev 55678)
@@ -287,6 +287,38 @@
creating the symbolic link, while this method uses the
fully-qualified file name to create the symbolic link.
</para>
+ <example>
+ <para>The <c>ln</c>(1) command:</para>
+ <code lang="sh">ln -s target symlink</code>
+ <para>
+ Can be created using <see cref="N:Mono.Unix" /> in two ways.
+ First, it can be created using
+ <see cref="M:Mono.Unix.UnixFileSystemInfo.CreateSymbolicLink" />:
+ </para>
+ <code lang="C#">UnixFileInfo f = new UnixFileInfo ("target.ufi");
+f.CreateSymbolicLink ("symlink.ufi");</code>
+ <para>
+ Second, it can be created using
+ <see
cref="M:Mono.Unix.UnixSymbolicLinkInfo.CreateSymbolicLinkTo"
+ />:
+ </para>
+ <code lang="C#">UnixSymbolicLinkInfo s =
+ new UnixSymbolicLinkInfo ("symlink.usli");
+s.CreateSymbolicLinkTo ("target.usli");</code>
+ <para>
+ The links created by the above differ; in particular, the target
+ of
+ <see cref="M:Mono.Unix.UnixFileSystemInfo.CreateSymbolicLink" />
+ is the full path name of the target, while
+ <see
cref="M:Mono.Unix.UnixSymbolicLinkInfo.CreateSymbolicLinkTo"
+ /> contains no extra information:
+ </para>
+ <code lang="sh">$ ls -lF symlink* | cut -c 39-
+symlink -> target
+symlink.ufi -> /full/path/to/target.ufi
+symlink.usli -> target.usli
+ </code>
+ </example>
</remarks>
<altmember cref="M:Mono.Unix.Native.Syscall.symlink" />
</Docs>
Modified: trunk/monodoc/class/Mono.Posix/en/Mono.Unix/UnixSymbolicLinkInfo.xml
===================================================================
--- trunk/monodoc/class/Mono.Posix/en/Mono.Unix/UnixSymbolicLinkInfo.xml
2006-01-17 12:09:08 UTC (rev 55677)
+++ trunk/monodoc/class/Mono.Posix/en/Mono.Unix/UnixSymbolicLinkInfo.xml
2006-01-17 12:38:04 UTC (rev 55678)
@@ -17,9 +17,42 @@
<Parameter Name="path" Type="System.String" />
</Parameters>
<Docs>
- <param name="path">To be added.</param>
- <summary>To be added.</summary>
- <remarks>To be added.</remarks>
+ <param name="path">
+ A <see cref="T:System.String" /> containing the symbolic link to
+ query.
+ </param>
+ <summary>Creates a new <see cref="T:Mono.Unix.UnixSymbolicLinkInfo" />
+ instance containing information about the symbolic link.</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.UnixSymbolicLinkInfo" /> objects for symbolic
+ links that do not exist or for files and directories.
+ However, attempts to use the
+ <see cref="T:Mono.Unix.UnixSymbolicLinkInfo" /> instance may
+ generate <see cref="T:System.InvalidOperationException" />s
+ and other exception types.
+ Use <see cref="P:Mono.Unix.UnixFileSystemInfo.Exists" /> to see if
+ <paramref name="path" /> exists,
+ <see cref="P:Mono.Unix.UnixFileSystemInfo.IsSymbolicLink" /> to
ensure
+ that <paramref name="path" /> is a symbolic link, and
+ Use <see cref="P:Mono.Unix.UnixSymbolicLinkInfo.HasContents" />
+ to ensure that the symbolic link target is valid.
+ </para>
+ </remarks>
</Docs>
</Member>
<Member MemberName="CreateSymbolicLinkTo">
@@ -32,9 +65,174 @@
<Parameter Name="path" Type="System.String" />
</Parameters>
<Docs>
- <param name="path">To be added.</param>
- <summary>To be added.</summary>
- <remarks>To be added.</remarks>
+ <param name="path">
+ A <see cref="T:System.String" /> containing the target of this
+ symbolic link instance.
+ </param>
+ <summary>
+ Creates the symbolic link
+ <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> which refers
+ to the symbolic link target <paramref name="path" />.
+ </summary>
+ <exception cref="System.IO.DirectoryNotFoundException">
+ <para>
+ A component of
+ <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
+ is not a directory.
+ [<see cref="F:Mono.Unix.Native.Errno.ENOTDIR" />]
+ </para>
+ </exception>
+ <exception cref="System.IO.FileNotFoundException">
+ <para>
+ <paramref name="path" /> does not exist.
+ [<see cref="F:Mono.Unix.Native.Errno.ENOENT" />]
+ </para>
+ </exception>
+ <exception cref="System.IO.IOException">
+ <para>
+ An I/O error occurred while making the directory entry for
+ <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
+ or allocating the inode for
+ <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
+ or writing out the link contents of
+ <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
+ [<see cref="F:Mono.Unix.Native.Errno.EIO" />]
+ </para>
+ <para>-or-</para>
+ <para>
+ The file
+ <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
+ would reside on a read-only file system.
+ [<see cref="F:Mono.Unix.Native.Errno.EROFS" />]
+ </para>
+ <para>-or-</para>
+ <para>
+ The directory in which the entry for the new symbolic link is
being placed
+ cannot be extended because there is no space left on the file
+ system containing the directory.
+ [<see cref="F:Mono.Unix.Native.Errno.ENOSPC" />]
+ </para>
+ <para>-or-</para>
+ <para>
+ The new symbolic link cannot be created because
+ there is no space left on the file
+ system that will contain the symbolic link.
+ [<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
+ symbolic link is being created.
+ [<see cref="F:Mono.Unix.Native.Errno.ENOSPC" />]
+ </para>
+ <para>-or-</para>
+ <para>
+ An I/O error occurred while making the directory entry or
allocating the inode.
+ [<see cref="F:Mono.Unix.Native.Errno.EIO" />]
+ </para>
+ </exception>
+ <exception cref="System.IO.PathTooLongException">
+ <para>
+ A component of either pathname exceeded 255 characters,
+ or the entire length of either path name exceeded 1023 characters.
+ [<see cref="F:Mono.Unix.Native.Errno.ENAMETOOLONG" />]
+ </para>
+ </exception>
+ <exception cref="Mono.Unix.UnixIOException">
+ <para>
+ A component of
+ <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
+ denies search permission.
+ [<see cref="F:Mono.Unix.Native.Errno.EACCES" />]
+ </para>
+ <para>-or-</para>
+ <para>
+ Too many symbolic links were encountered in translating the
pathname.
+ [<see cref="F:Mono.Unix.Native.Errno.ELOOP" />]
+ </para>
+ <para>-or-</para>
+ <para>
+ The path name pointed at by the
+ <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
+ argument
+ already exists.
+ [<see cref="F:Mono.Unix.Native.Errno.EEXIST" />]
+ </para>
+ <para>-or-</para>
+ <para>
+ The directory in which the entry for the new symbolic link
+ is being placed cannot be extended because the
+ user's quota of disk blocks on the file system
+ containing the directory has been exhausted.
+ [<see cref="F:Mono.Unix.Native.Errno.EDQUOT" />]
+ </para>
+ <para>-or-</para>
+ <para>
+ The new symbolic link cannot be created because the user's
+ quota of disk blocks on the file system that will
+ contain the symbolic link has been exhausted.
+ [<see cref="F:Mono.Unix.Native.Errno.EDQUOT" />]
+ </para>
+ <para>-or-</para>
+ <para>
+ The user's quota of inodes on the file system on
+ which the symbolic link is being created has been exhausted.
+ [<see cref="F:Mono.Unix.Native.Errno.EDQUOT" />]
+ </para>
+ </exception>
+ <remarks>
+ <para>
+ Creates the symbolic link
+ <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> which refers
+ to the target <paramref name="path" />.
+ </para>
+ <para>
+ The <paramref name="path" /> argument is permitted to specify
+ relative or absolute path information. Relative path information
is
+ interpreted by the file system as relative to the symbolic link
+ <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
+ </para>
+ <para>
+ Using
+ <see cref="M:Mono.Unix.UnixSymbolicLinkInfo.CreateSymbolicLinkTo"
/>
+ instead of
+ <see cref="M:Mono.Unix.UnixFileSystemInfo.CreateSymbolicLink" />
+ allows relative path information to be preserved within the
+ symbolic link.
+ </para>
+ <example>
+ <para>The <c>ln</c>(1) command:</para>
+ <code lang="sh">ln -s target symlink</code>
+ <para>
+ Can be created using <see cref="N:Mono.Unix" /> in two ways.
+ First, it can be created using
+ <see cref="M:Mono.Unix.UnixFileSystemInfo.CreateSymbolicLink" />:
+ </para>
+ <code lang="C#">UnixFileInfo f = new UnixFileInfo ("target.ufi");
+f.CreateSymbolicLink ("symlink.ufi");</code>
+ <para>
+ Second, it can be created using
+ <see
cref="M:Mono.Unix.UnixSymbolicLinkInfo.CreateSymbolicLinkTo"
+ />:
+ </para>
+ <code lang="C#">UnixSymbolicLinkInfo s =
+ new UnixSymbolicLinkInfo ("symlink.usli");
+s.CreateSymbolicLinkTo ("target.usli");</code>
+ <para>
+ The links created by the above differ; in particular, the target
+ of
+ <see cref="M:Mono.Unix.UnixFileSystemInfo.CreateSymbolicLink" />
+ is the full path name of the target, while
+ <see
cref="M:Mono.Unix.UnixSymbolicLinkInfo.CreateSymbolicLinkTo"
+ /> contains no extra information:
+ </para>
+ <code lang="sh">$ ls -lF symlink* | cut -c 39-
+symlink -> target
+symlink.ufi -> /full/path/to/target.ufi
+symlink.usli -> target.usli
+ </code>
+ </example>
+ </remarks>
</Docs>
</Member>
<Member MemberName="CreateSymbolicLinkTo">
@@ -47,9 +245,173 @@
<Parameter Name="path" Type="Mono.Unix.UnixFileSystemInfo" />
</Parameters>
<Docs>
- <param name="path">To be added.</param>
- <summary>To be added.</summary>
- <remarks>To be added.</remarks>
+ <param name="path">
+ A <see cref="T:Mono.Unix.UnixFileSystemInfo" /> instance containing
+ the target of this symbolic link instance.
+ </param>
+ <summary>
+ Creates the symbolic link
+ <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> which refers
+ to the symbolic link target <paramref name="path" />.
+ </summary>
+ <exception cref="System.IO.DirectoryNotFoundException">
+ <para>
+ A component of
+ <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
+ is not a directory.
+ [<see cref="F:Mono.Unix.Native.Errno.ENOTDIR" />]
+ </para>
+ </exception>
+ <exception cref="System.IO.FileNotFoundException">
+ <para>
+ <paramref name="path" /> does not exist.
+ [<see cref="F:Mono.Unix.Native.Errno.ENOENT" />]
+ </para>
+ </exception>
+ <exception cref="System.IO.IOException">
+ <para>
+ An I/O error occurred while making the directory entry for
+ <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
+ or allocating the inode for
+ <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
+ or writing out the link contents of
+ <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
+ [<see cref="F:Mono.Unix.Native.Errno.EIO" />]
+ </para>
+ <para>-or-</para>
+ <para>
+ The file
+ <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
+ would reside on a read-only file system.
+ [<see cref="F:Mono.Unix.Native.Errno.EROFS" />]
+ </para>
+ <para>-or-</para>
+ <para>
+ The directory in which the entry for the new symbolic link is
being placed
+ cannot be extended because there is no space left on the file
+ system containing the directory.
+ [<see cref="F:Mono.Unix.Native.Errno.ENOSPC" />]
+ </para>
+ <para>-or-</para>
+ <para>
+ The new symbolic link cannot be created because
+ there is no space left on the file
+ system that will contain the symbolic link.
+ [<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
+ symbolic link is being created.
+ [<see cref="F:Mono.Unix.Native.Errno.ENOSPC" />]
+ </para>
+ <para>-or-</para>
+ <para>
+ An I/O error occurred while making the directory entry or
allocating the inode.
+ [<see cref="F:Mono.Unix.Native.Errno.EIO" />]
+ </para>
+ </exception>
+ <exception cref="System.IO.PathTooLongException">
+ <para>
+ A component of either pathname exceeded 255 characters,
+ or the entire length of either path name exceeded 1023 characters.
+ [<see cref="F:Mono.Unix.Native.Errno.ENAMETOOLONG" />]
+ </para>
+ </exception>
+ <exception cref="Mono.Unix.UnixIOException">
+ <para>
+ A component of
+ <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
+ denies search permission.
+ [<see cref="F:Mono.Unix.Native.Errno.EACCES" />]
+ </para>
+ <para>-or-</para>
+ <para>
+ Too many symbolic links were encountered in translating the
pathname.
+ [<see cref="F:Mono.Unix.Native.Errno.ELOOP" />]
+ </para>
+ <para>-or-</para>
+ <para>
+ The path name pointed at by the
+ <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
+ argument
+ already exists.
+ [<see cref="F:Mono.Unix.Native.Errno.EEXIST" />]
+ </para>
+ <para>-or-</para>
+ <para>
+ The directory in which the entry for the new symbolic link
+ is being placed cannot be extended because the
+ user's quota of disk blocks on the file system
+ containing the directory has been exhausted.
+ [<see cref="F:Mono.Unix.Native.Errno.EDQUOT" />]
+ </para>
+ <para>-or-</para>
+ <para>
+ The new symbolic link cannot be created because the user's
+ quota of disk blocks on the file system that will
+ contain the symbolic link has been exhausted.
+ [<see cref="F:Mono.Unix.Native.Errno.EDQUOT" />]
+ </para>
+ <para>-or-</para>
+ <para>
+ The user's quota of inodes on the file system on
+ which the symbolic link is being created has been exhausted.
+ [<see cref="F:Mono.Unix.Native.Errno.EDQUOT" />]
+ </para>
+ </exception>
+ <remarks>
+ <para>
+ Creates the symbolic link
+ <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> which refers
+ to the target <paramref name="path" />.
+ </para>
+ <para>
+ The <paramref name="path" /> argument is permitted to specify
+ relative or absolute path information. Relative path information
is
+ interpreted by the file system as relative to the symbolic link
+ <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
+ </para>
+ <para>
+ Using
+ <see cref="M:Mono.Unix.UnixSymbolicLinkInfo.CreateSymbolicLinkTo"
/>
+ instead of
+ <see cref="M:Mono.Unix.UnixFileSystemInfo.CreateSymbolicLink" />
+ allows relative path information to be preserved within the
+ symbolic link.
+ </para>
+ <example>
+ <para>The <c>ln</c>(1) command:</para>
+ <code lang="sh">ln -s target symlink</code>
+ <para>
+ Can be created using <see cref="N:Mono.Unix" /> in two ways.
+ First, it can be created using
+ <see cref="M:Mono.Unix.UnixFileSystemInfo.CreateSymbolicLink" />:
+ </para>
+ <code lang="C#">UnixFileInfo f = new UnixFileInfo ("target.ufi");
+f.CreateSymbolicLink ("symlink.ufi");</code>
+ <para>
+ Second, it can be created using
+ <see
cref="M:Mono.Unix.UnixSymbolicLinkInfo.CreateSymbolicLinkTo"
+ />:
+ </para>
+ <code lang="C#">UnixSymbolicLinkInfo s =
+ new UnixSymbolicLinkInfo ("symlink.usli");
+s.CreateSymbolicLinkTo ("target.usli");</code>
+ <para>
+ The links created by the above differ; in particular, the target
+ of
+ <see cref="M:Mono.Unix.UnixFileSystemInfo.CreateSymbolicLink" />
+ is the full path name of the target, while
+ <see
cref="M:Mono.Unix.UnixSymbolicLinkInfo.CreateSymbolicLinkTo"
+ /> contains no extra information:
+ </para>
+ <code lang="sh">$ ls -lF symlink* | cut -c 39-
+symlink -> target
+symlink.ufi -> /full/path/to/target.ufi
+symlink.usli -> target.usli</code>
+ </example>
+ </remarks>
</Docs>
</Member>
<Member MemberName="Contents">
@@ -59,9 +421,94 @@
<ReturnType>Mono.Unix.UnixFileSystemInfo</ReturnType>
</ReturnValue>
<Docs>
- <summary>To be added.</summary>
- <value>To be added.</value>
- <remarks>To be added.</remarks>
+ <summary>Gets the target of this symbolic link.</summary>
+ <exception cref="System.ArgumentException">
+ <para>
+ <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
+ is not a symbolic link.
+ [<see cref="F:Mono.Unix.Native.Errno.EINVAL" />]
+ </para>
+ </exception>
+ <exception cref="System.IO.DirectoryNotFoundException">
+ <para>
+ A component of
+ <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
+ is not a directory.
+ [<see cref="F:Mono.Unix.Native.Errno.ENOTDIR" />]
+ </para>
+ </exception>
+ <exception cref="System.IO.FileNotFoundException">
+ <para>
+ <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
+ [<see cref="F:Mono.Unix.Native.Errno.ENOENT" />]
+ </para>
+ </exception>
+ <exception cref="System.IO.IOException">
+ <para>
+ An I/O error occurred while reading from the file system.
+ [<see cref="F:Mono.Unix.Native.Errno.EIO" />]
+ </para>
+ </exception>
+ <exception cref="System.IO.PathTooLongException">
+ <para>
+ A component of a pathname exceeded 255 characters,
+ or an entire path name exceeded 1023 characters.
+ [<see cref="F:Mono.Unix.Native.Errno.ENAMETOOLONG" />]
+ </para>
+ </exception>
+ <exception cref="Mono.Unix.UnixIOException">
+ <para>
+ Search permission is denied for a component of the path prefix.
+ [<see cref="F:Mono.Unix.Native.Errno.EACCES" />]
+ </para>
+ <para>-or-</para>
+ <para>
+ Too many symbolic links were encountered in translating the
pathname.
+ [<see cref="F:Mono.Unix.Native.Errno.ELOOP" />]
+ </para>
+ </exception>
+ <value>
+ <para>
+ A <see cref="T:Mono.Unix.UnixFileSystemInfo" /> reference
containing
+ information about the target of this symbolic link, or
+ <see langword="null" /> if
+ <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />:
+ </para>
+ <list type="bullet">
+ <item><term>does not exist, or</term></item>
+ <item><term>is not a symbolic link.</term></item>
+ </list>
+ <para>
+ The behavior will be changed in the future to generate an
+ exception for either of the above error conditions, so current
+ code needs to deal with both exceptions and a
+ <see langword="null" /> return value. <see langword="null" />
+ will not be used by the Mono 1.2 release.
+ </para>
+ </value>
+ <remarks>
+ <para>
+ This really should throw the same exceptions as
+ <see cref="P:Mono.Unix.UnixSymbolicLinkInfo.ContentsPath" />
+ instead of returning <see langword="null" />.
+ </para>
+ <para>
+ <block subset="none" type="note">
+ The target may in turn be a symbolic link (nothing prevents
+ symbolic links from referencing other symbolic links).
+ To get the actual target, use
+ <see cref="M:Mono.Unix.UnixPath.GetRealPath" />,
+ <see cref="M:Mono.Unix.UnixPath.GetCompleteRealPath" />,
+ or walk the symbolic link "chain":
+ <code lang="C#">UnixFileSystemInfo target =
+ new UnixSymbolicLinkInfo ("symlink").Contents;
+while (target != null &&
+ target.FileType == FileTypes.SymbolicLink) {
+ target = ((UnixSymbolicLinkInfo) target).Contents;
+}</code>
+ </block>
+ </para>
+ </remarks>
</Docs>
</Member>
<Member MemberName="ContentsPath">
@@ -71,9 +518,70 @@
<ReturnType>System.String</ReturnType>
</ReturnValue>
<Docs>
- <summary>To be added.</summary>
- <value>To be added.</value>
- <remarks>To be added.</remarks>
+ <summary>
+ Gets the target of this symbolic link as a
+ <see cref="T:System.String" />.
+ </summary>
+ <exception cref="System.ArgumentException">
+ <para>
+ <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
+ is not a symbolic link.
+ [<see cref="F:Mono.Unix.Native.Errno.EINVAL" />]
+ </para>
+ </exception>
+ <exception cref="System.IO.DirectoryNotFoundException">
+ <para>
+ A component of
+ <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
+ is not a directory.
+ [<see cref="F:Mono.Unix.Native.Errno.ENOTDIR" />]
+ </para>
+ </exception>
+ <exception cref="System.IO.FileNotFoundException">
+ <para>
+ <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
+ [<see cref="F:Mono.Unix.Native.Errno.ENOENT" />]
+ </para>
+ </exception>
+ <exception cref="System.IO.IOException">
+ <para>
+ An I/O error occurred while reading from the file system.
+ [<see cref="F:Mono.Unix.Native.Errno.EIO" />]
+ </para>
+ </exception>
+ <exception cref="System.IO.PathTooLongException">
+ <para>
+ A component of a pathname exceeded 255 characters,
+ or an entire path name exceeded 1023 characters.
+ [<see cref="F:Mono.Unix.Native.Errno.ENAMETOOLONG" />]
+ </para>
+ </exception>
+ <exception cref="Mono.Unix.UnixIOException">
+ <para>
+ Search permission is denied for a component of the path prefix.
+ [<see cref="F:Mono.Unix.Native.Errno.EACCES" />]
+ </para>
+ <para>-or-</para>
+ <para>
+ Too many symbolic links were encountered in translating the
pathname.
+ [<see cref="F:Mono.Unix.Native.Errno.ELOOP" />]
+ </para>
+ </exception>
+ <value>
+ A <see cref="T:System.String" /> containing the target of this
+ symbolic link.
+ </value>
+ <remarks>
+ <para>
+ <block subset="none" type="note">
+ The target may in turn be a symbolic link (nothing prevents
+ symbolic links from referencing other symbolic links).
+ To get the actual target, use
+ <see cref="M:Mono.Unix.UnixPath.GetRealPath" /> or
+ <see cref="M:Mono.Unix.UnixPath.GetCompleteRealPath" />.
+ </block>
+ </para>
+ </remarks>
</Docs>
</Member>
<Member MemberName="HasContents">
@@ -83,14 +591,54 @@
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Docs>
- <summary>To be added.</summary>
- <value>To be added.</value>
- <remarks>To be added.</remarks>
+ <summary>
+ Returns a <see cref="T:System.Boolean" /> indicating whether or not
+ <see cref="P:Mono.Unix.UnixSymbolicLinkInfo.Contents" />
+ and
+ <see cref="P:Mono.Unix.UnixSymbolicLinkInfo.ContentsPath" />
+ are valid.
+ </summary>
+ <value>
+ <see langword="true" /> if
+ <see cref="P:Mono.Unix.UnixSymbolicLinkInfo.Contents" /> and
+ <see cref="P:Mono.Unix.UnixSymbolicLinkInfo.ContentsPath" />
+ are valid (i.e. won't return <see langword="null" /> or generate an
+ exception); otherwise, <see langword="false" />.
+ </value>
+ <remarks>
+ <para>
+ This method is subject to race conditions in the file system --
+ it's entirely possible for the symlink to be modified or deleted
+ between a call to
+ <see cref="P:Mono.Unix.UnixSymbolicLinkInfo.HasContents" />
+ and
+ <see cref="P:Mono.Unix.UnixSymbolicLinkInfo.Contents" />
+ or
+ <see cref="P:Mono.Unix.UnixSymbolicLinkInfo.ContentsPath" />.
+ </para>
+ </remarks>
</Docs>
</Member>
</Members>
<Docs>
- <summary>To be added.</summary>
- <remarks>To be added.</remarks>
+ <summary>
+ Provides information about and performs operations on symbolic links.
+ </summary>
+ <remarks>
+ <para>The <see cref="T:Mono.Unix.UnixSymbolicLinkInfo" /> class provides
+ information about a symbolic link. It also allows basic
+ symbolic link manipulation:</para>
+ <list type="bullet">
+ <item>
+ <term>Symbolic link creation with
+ <see cref="M:Mono.Unix.UnixSymbolicLinkInfo.CreateSymbolicLinkTo" />.
+ </term>
+ </item>
+ <item>
+ <term>Symbolic link deletion with
+ <see cref="M:Mono.Unix.UnixFileInfo.Delete" />.</term>
+ </item>
+ </list>
+ </remarks>
</Docs>
</Type>
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches