1 <Type Name="UnixFileSystemInfo" FullName="Mono.Unix.UnixFileSystemInfo">
2 <TypeSignature Language="C#" Value="public abstract class UnixFileSystemInfo" />
4 <AssemblyName>Mono.Posix</AssemblyName>
5 <AssemblyVersion>1.0.5000.0</AssemblyVersion>
6 <AssemblyVersion>2.0.0.0</AssemblyVersion>
8 <ThreadingSafetyStatement>All public static members of this type are safe for multithreaded operations. No instance members are guaranteed to be thread safe.</ThreadingSafetyStatement>
10 <BaseTypeName>System.Object</BaseTypeName>
14 <summary>Provides information and performs operations on file system
18 The <see cref="T:Mono.Unix.UnixFileSystemInfo" /> class provides
19 information about a file system entry and permits file system entry
24 <term>Determining the full file name with
25 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
29 <term>Determining whether the file exists with
30 <see cref="P:Mono.Unix.UnixFileSystemInfo.Exists" /></term>
33 <term>Querying file system entry metadata such as the
34 hardware device it resides on
35 (<see cref="P:Mono.Unix.UnixFileSystemInfo.Device" />),
37 (<see cref="P:Mono.Unix.UnixFileSystemInfo.Inode" />),
38 file access permissions
39 (<see cref="P:Mono.Unix.UnixFileSystemInfo.FileAccessPermissions" />),
41 (<see cref="P:Mono.Unix.UnixFileSystemInfo.FileType" />),
42 file owner information
43 (<see cref="P:Mono.Unix.UnixFileSystemInfo.OwnerUser" />),
45 (<see cref="P:Mono.Unix.UnixFileSystemInfo.OwnerGroup" />),
47 (<see cref="P:Mono.Unix.UnixFileSystemInfo.Length" />),
48 various times maintained by the operating system
49 (<see cref="P:Mono.Unix.UnixFileSystemInfo.LastAccessTime" />,
50 <see cref="P:Mono.Unix.UnixFileSystemInfo.LastWriteTime" />,
51 <see cref="P:Mono.Unix.UnixFileSystemInfo.LastStatusChangeTime" />),
56 <term>Creating hard links with
57 <see cref="M:Mono.Unix.UnixFileSystemInfo.CreateLink" />.
61 <term>Creating symbolic links with
62 <see cref="M:Mono.Unix.UnixFileSystemInfo.CreateSymbolicLink" />.
66 <term>File system entry deletion with
67 <see cref="M:Mono.Unix.UnixFileSystemInfo.Delete" />.
71 <term>Setting file system owner and group information with
72 <see cref="M:Mono.Unix.UnixFileSystemInfo.SetOwner" />.
77 Information provided by this type may not be valid for any significant
78 period of time, due to potential race conditions with other processes
79 running on the system or because of file management actions performed
80 within the current process.
83 The only guarantee is that the information provided <i>was</i> valid
84 at some point in time, <i>or</i> an
85 <see cref="T:System.InvalidOperationException" /> exception will be
86 thrown when attempting to access the provided information.
87 <block subset="none" type="note">
88 To clarify, once the file system entry
89 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is found,
90 it won't be checked for again until a call to
91 <see cref="P:Mono.Unix.UnixFileSystemInfo.Refresh" />.
92 <c>FullName</c> will be checked for during object construction, but
93 need not exist during object construction --
94 <see cref="P:Mono.Unix.UnixFileSystemInfo.Exists" /> will let you
95 know if the file currently exists and does an implicit
96 <c>Refresh</c>. If <c>FullName</c> doesn't exist when the
97 <c>UnixFileSystemInfo</c> is created, it will be checked for
98 whenever information about the file system entry is required,
100 <see cref="P:Mono.Unix.UnixFileSystemInfo.Device" /> and
101 <see cref="P:Mono.Unix.UnixFileSystemInfo.Length" />.
104 Check the individual method and property documentation to determine if
105 and when an exception will be thrown.
108 <altmember cref="T:Mono.Unix.UnixDirectoryInfo" />
109 <altmember cref="T:Mono.Unix.UnixFileInfo" />
110 <altmember cref="T:Mono.Unix.UnixSymbolicLinkInfo" />
113 <Member MemberName=".ctor">
114 <MemberSignature Language="C#" Value="protected UnixFileSystemInfo (string path);" />
115 <MemberType>Constructor</MemberType>
117 <Parameter Name="path" Type="System.String" />
120 <param name="path">A <see cref="T:System.String" /> containing the
121 name of the file system object to query.</param>
122 <summary>Creates a <see cref="T:Mono.Unix.UnixFileSystemInfo" />
126 <para>The <paramref name="path" /> argument is permitted to specify
127 relative or absolute path information. Relative path information is
128 interpreted as relative to the current working directory.
129 <block subset="none" type="note">To obtain the current working
131 <see cref="M:Mono.Unix.UnixDirectoryInfo.GetCurrentDirectory" qualify="true" />.
134 <exception cref="T:System.ArgumentNullException">
135 <paramref name="path" /> is <see langword="null" />.
137 <exception cref="T:System.ArgumentException">
139 <paramref name="path" /> is a zero-length string.</para>
142 <paramref name="path" /> contains an invalid character.
143 See <see cref="M:Mono.Unix.UnixPath.GetInvalidPathChars" />.
148 <AssemblyVersion>1.0.5000.0</AssemblyVersion>
149 <AssemblyVersion>2.0.0.0</AssemblyVersion>
152 <Member MemberName="BlocksAllocated">
153 <MemberSignature Language="C#" Value="public long BlocksAllocated { get; }" />
154 <MemberType>Property</MemberType>
156 <ReturnType>System.Int64</ReturnType>
159 <summary>Gets the number of file system blocks used by this file
160 system entry.</summary>
161 <value>A <see cref="T:System.Int64" /> containing the number of file
162 system blocks used by this file system entry.</value>
165 <exception cref="T:System.InvalidOperationException">
166 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> doesn't exist.
168 <altmember cref="F:Mono.Unix.Native.Stat.st_blocks" />
169 <altmember cref="F:Mono.Unix.Native.Syscall.stat" />
172 <AssemblyVersion>1.0.5000.0</AssemblyVersion>
173 <AssemblyVersion>2.0.0.0</AssemblyVersion>
176 <Member MemberName="BlockSize">
177 <MemberSignature Language="C#" Value="public long BlockSize { get; }" />
178 <MemberType>Property</MemberType>
180 <ReturnType>System.Int64</ReturnType>
183 <summary>Gets the preferred blocksize for filesystem I/O.</summary>
184 <value>A <see cref="T:System.Int64" /> containing the preferred block
185 size for file system I/O on this file system entry.</value>
188 <exception cref="T:System.InvalidOperationException">
189 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> doesn't exist.
191 <altmember cref="F:Mono.Unix.Native.Stat.st_blksize" />
192 <altmember cref="F:Mono.Unix.Native.Syscall.stat" />
195 <AssemblyVersion>1.0.5000.0</AssemblyVersion>
196 <AssemblyVersion>2.0.0.0</AssemblyVersion>
199 <Member MemberName="CanAccess">
200 <MemberSignature Language="C#" Value="public bool CanAccess (Mono.Unix.Native.AccessModes mode);" />
201 <MemberType>Method</MemberType>
203 <ReturnType>System.Boolean</ReturnType>
206 <Parameter Name="mode" Type="Mono.Unix.Native.AccessModes" />
209 <param name="mode">A <see cref="T:Mono.Unix.Native.AccessModes" />
210 specifying what kind of access the process would like.
212 <summary>Determines whether or not the process can access
213 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> with the
214 specified access <paramref name="mode" /></summary>
215 <returns>A <see cref="T:System.Boolean" /> specifying whether or not
216 the process can access
217 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
221 Note that this method is subject to external race conditions --
222 just because you can access
223 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> now doesn't
224 mean you'll be able to access it later, as another thread/process
225 may change the access permissions.
230 <AssemblyVersion>1.0.5000.0</AssemblyVersion>
231 <AssemblyVersion>2.0.0.0</AssemblyVersion>
235 <AttributeName>System.CLSCompliant(false)</AttributeName>
239 <Member MemberName="CreateLink">
240 <MemberSignature Language="C#" Value="public Mono.Unix.UnixFileSystemInfo CreateLink (string path);" />
241 <MemberType>Method</MemberType>
243 <ReturnType>Mono.Unix.UnixFileSystemInfo</ReturnType>
246 <Parameter Name="path" Type="System.String" />
251 <summary>Creates a hard link so that
252 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> and
253 <paramref name="path" /> are the same file.</summary>
254 <returns>A <see cref="T:Mono.Unix.UnixFileSystemInfo" /> instance which
255 represents <paramref name="path" />.</returns>
257 <para>The <paramref name="path" /> argument is permitted to specify
258 relative or absolute path information. Relative path information is
259 interpreted as relative to the current working directory.
260 <block subset="none" type="note">To obtain the current working
262 <see cref="M:Mono.Unix.UnixDirectoryInfo.GetCurrentDirectory" />.
265 After creating the link, the link count
266 <see cref="P:Mono.Unix.UnixFileSystemInfo.LinkCount" /> will be
267 incremented, and there will be no way to distinguish the two
268 files -- they're the same file with two (or more) different names.
271 <exception cref="T:System.InvalidOperationException">
273 The file system containing
274 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
275 does not support hard links.
276 [<see cref="F:Mono.Unix.Native.Errno.EOPNOTSUPP" />]
280 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
281 is a directory or is flagged immutable or append-only
282 (see <see cref="M:Mono.Unix.Native.Syscall.chflags" />).
283 [<see cref="F:Mono.Unix.Native.Errno.EPERM" />]
286 <exception cref="T:System.UnauthorizedAccessException">
287 <para>Search permission is denied for a component of the path
288 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> or
289 <paramref name="path" />.
290 [<see cref="F:Mono.Unix.Native.Errno.EACCESS" />]
294 <paramref name="path" /> requires writing in a directory with a
295 mode that denies write permissions.
296 [<see cref="F:Mono.Unix.Native.Errno.EACCESS" />]
299 <exception cref="T:System.IO.DirectoryNotFoundException">
300 A component of the path prefix of
301 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
302 or <paramref name="path" /> is not a
304 [<see cref="F:Mono.Unix.Native.Errno.ENOTDIR" />]
306 <exception cref="T:System.IO.FileNotFoundException">
309 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
310 or <paramref name="path" />
311 that must exist does not exist.
312 [<see cref="F:Mono.Unix.Native.Errno.ENOENT" />]
317 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
319 [<see cref="F:Mono.Unix.Native.Errno.ENOENT" />]
322 <exception cref="T:System.IO.IOException">
324 <paramref name="path" />
325 resides on a read-only file system.
326 [<see cref="F:Mono.Unix.Native.Errno.EROFS" />]
329 <para>The directory for <paramref name="path" /> cannot be extended
330 because there is no space left.
331 [<see cref="F:Mono.Unix.Native.Errno.ENOSPC" />]
334 <para>An I/O error occurred while making the directory entry.
335 [<see cref="F:Mono.Unix.Native.Errno.EIO" />]
338 <exception cref="T:System.IO.PathTooLongException">
339 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> or
340 <paramref name="path" />
342 [<see cref="F:Mono.Unix.Native.Errno.ENAMETOOLONG" />]
344 <exception cref="T:Mono.Unix.UnixIOException">
345 <para>Too many symbolic links were encountered in translating
346 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> or
347 <paramref name="path" />
348 [<see cref="F:Mono.Unix.Native.Errno.ELOOP" />]
352 <see cref="P:Mono.Unix.UnixFileInfo.Directory" /> cannot be
353 extended because the user's quota of disk blocks on the file system
354 containing this directory has been exhausted.
355 [<see cref="F:Mono.Unix.Native.Errno.EDQUOT" />]
359 <see cref="P:Mono.Unix.UnixFileSystemInfo.LinkCount" />
360 would exceed its limit. Use
361 <see cref="M:Mono.Unix.UnixFileSystemInfo.GetConfigurationValue" />(<see cref="M:Mono.Unix.Native.PathconfName._PC_LINK_MAX" />)
362 to determine the maximum link value.
363 [<see cref="F:Mono.Unix.Native.Errno.EMLINK" />]
367 <paramref name="path" /> already exists.
368 [<see cref="F:Mono.Unix.Native.Errno.EEXIST" />]
372 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> and
373 <paramref name="path" /> are on different file systems.
374 [<see cref="F:Mono.Unix.Native.Errno.EXDEV" />]
377 <altmember cref="M:Mono.Unix.Native.Syscall.link" />
380 <AssemblyVersion>1.0.5000.0</AssemblyVersion>
381 <AssemblyVersion>2.0.0.0</AssemblyVersion>
384 <Member MemberName="CreateSymbolicLink">
385 <MemberSignature Language="C#" Value="public Mono.Unix.UnixSymbolicLinkInfo CreateSymbolicLink (string path);" />
386 <MemberType>Method</MemberType>
388 <ReturnType>Mono.Unix.UnixSymbolicLinkInfo</ReturnType>
391 <Parameter Name="path" Type="System.String" />
394 <param name="path">A <see cref="T:System.String" /> containing the name
395 of the symbolic link to create.</param>
396 <summary>Create a symbolic link so that <paramref name="path" />
397 "points to" <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
399 <returns>A <see cref="T:Mono.Unix.UnixSymbolicLinkInfo" /> instance
400 containing information about the created symbolic link.</returns>
402 <para>The <paramref name="path" /> argument is permitted to specify
403 relative or absolute path information. Relative path information is
404 interpreted as relative to the current working directory.
405 <block subset="none" type="note">To obtain the current working
407 <see cref="M:Mono.Unix.UnixDirectoryInfo.GetCurrentDirectory" />.
410 The created symbolic link will contain the full path name,
411 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
412 If this is undesirable (for instance, you want the created
413 symbolic link to contain relative path information), use
414 <see cref="M:Mono.Unix.UnixSymbolicLinkInfo.CreateSymbolicLinkTo" />
415 instead. <c>UnixSymbolicLinkInfo.CreateSymbolicLinkTo</c>
416 uses the exact path provided to the
417 <see cref="T:Mono.Unix.UnixSymbolicLinkInfo" /> constructor when
418 creating the symbolic link, while this method uses the
419 fully-qualified file name to create the symbolic link.
422 <para>The <c>ln</c>(1) command:</para>
423 <code lang="sh">ln -s target symlink</code>
425 Can be created using <see cref="N:Mono.Unix" /> in two ways.
426 First, it can be created using
427 <see cref="M:Mono.Unix.UnixFileSystemInfo.CreateSymbolicLink" />:
429 <code lang="C#">UnixFileInfo f = new UnixFileInfo ("target.ufi");
430 f.CreateSymbolicLink ("symlink.ufi");</code>
432 Second, it can be created using
433 <see cref="M:Mono.Unix.UnixSymbolicLinkInfo.CreateSymbolicLinkTo" />:
435 <code lang="C#">UnixSymbolicLinkInfo s =
436 new UnixSymbolicLinkInfo ("symlink.usli");
437 s.CreateSymbolicLinkTo ("target.usli");</code>
439 The links created by the above differ; in particular, the target
441 <see cref="M:Mono.Unix.UnixFileSystemInfo.CreateSymbolicLink" />
442 is the full path name of the target, while
443 <see cref="M:Mono.Unix.UnixSymbolicLinkInfo.CreateSymbolicLinkTo" /> contains no extra information:
445 <code lang="sh">$ ls -lF symlink* | cut -c 39-
447 symlink.ufi -> /full/path/to/target.ufi
448 symlink.usli -> target.usli
452 <exception cref="T:System.UnauthorizedAccessException">
453 <para>Search permission is denied for a component of the path
454 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> or
455 <paramref name="path" />.
456 [<see cref="F:Mono.Unix.Native.Errno.EACCES" />]
459 <exception cref="T:System.IO.DirectoryNotFoundException">
460 A component of the path prefix of
461 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is not a
463 [<see cref="F:Mono.Unix.Native.Errno.ENOTDIR" />]
465 <exception cref="T:System.IO.FileNotFoundException">
466 A component of <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
467 that must exist does not exist.
468 [<see cref="F:Mono.Unix.Native.Errno.ENOENT" />]
470 <exception cref="T:System.IO.PathTooLongException">
471 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> was too long.
472 [<see cref="F:Mono.Unix.Native.Errno.ENAMETOOLONG" />]
474 <exception cref="T:System.IO.IOException">
476 <paramref name="path" /> resides on a read-only file system.
477 [<see cref="F:Mono.Unix.Native.Errno.EROFS" />]
480 <para>The directory containing <paramref name="path" />
481 cannot be extended because there is no space left on the file
482 system containing the directory.
483 [<see cref="F:Mono.Unix.Native.Errno.ENOSPC" />]
486 <para>There are no free inodes on the file system on which the file
488 [<see cref="F:Mono.Unix.Native.Errno.ENOSPC" />]
491 <para>An I/O error occurred while making the directory entry or
492 allocating the inode.
493 [<see cref="F:Mono.Unix.Native.Errno.EIO" />]
496 <exception cref="T:Mono.Unix.UnixIOException">
497 <para>Too many symbolic links were encountered in translating
498 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
499 [<see cref="F:Mono.Unix.Native.Errno.ELOOP" />]
502 <para>The user's quota of inodes on the file system containing
503 <see cref="P:Mono.Unix.UnixFileInfo.Directory" /> has been exhausted.
504 [<see cref="F:Mono.Unix.Native.Errno.EDQUOT" />]
507 <para>The directory containing <paramref name="path" /> cannot be
508 extended because the user's quota of disk blocks on the file system
509 containing this directory has been exhausted.
510 [<see cref="F:Mono.Unix.Native.Errno.EDQUOT" />]
514 <paramref name="path" /> already exists.</para>
516 <altmember cref="M:Mono.Unix.Native.Syscall.symlink" />
519 <AssemblyVersion>1.0.5000.0</AssemblyVersion>
520 <AssemblyVersion>2.0.0.0</AssemblyVersion>
523 <Member MemberName="Delete">
524 <MemberSignature Language="C#" Value="public abstract void Delete ();" />
525 <MemberType>Method</MemberType>
527 <ReturnType>System.Void</ReturnType>
531 <summary>Deletes the file system entry
532 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.</summary>
535 <exception cref="T:System.InvalidOperationException">
536 <para>The filesystem containing
537 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> does not
538 support the removal of file system entries.</para>
540 <para>The directory containing
541 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
542 has the <see cref="F:Mono.Unix.FileSpecialAttributes.Sticky" /> bit
543 set and the process's
544 <see cref="P:Mono.Unix.UnixEnvironment.EffectiveUserId" /> is
545 neither the uid of the file to be deleted nor that of the directory
546 containing it.</para>
548 <exception cref="T:System.UnauthorizedAccessException">
549 <para>Write access to the directory containing
550 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> was not
551 allowed for the processe's effective user id
552 <see cref="P:Mono.Unix.UnixEnvironment.EffectiveUserId" />.</para>
554 <para>One of the directories in
555 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> did not have
556 search (execute) permissions.</para>
558 <exception cref="T:System.IO.DirectoryNotFoundException">
560 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is not a
563 <exception cref="T:System.IO.FileNotFoundException">
564 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> does not
567 <exception cref="T:System.IO.IOException">
569 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> contains
570 files other than '<c>.</c>' and '<c>..</c>' in it.</para>
572 <para>An I/O error occurred while deleting the file system entry or
573 deallocating the inode.</para>
575 <para>The directory entry to be removed resides in a read-only file
578 <exception cref="T:System.IO.PathTooLongException">
579 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> was too long.
581 <exception cref="T:Mono.Unix.UnixIOException">
582 <para>Too many symbolic links were encountered in translating
583 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.</para>
585 <para>The directory to be removed is the mount point for a mounted
590 <AssemblyVersion>1.0.5000.0</AssemblyVersion>
591 <AssemblyVersion>2.0.0.0</AssemblyVersion>
594 <Member MemberName="Device">
595 <MemberSignature Language="C#" Value="public long Device { get; }" />
596 <MemberType>Property</MemberType>
598 <ReturnType>System.Int64</ReturnType>
601 <summary>Gets the device ID that this file system entry resides on.</summary>
602 <value>A <see cref="T:System.Int64" /> containing the device ID that
603 this file system entry resides on.</value>
606 <exception cref="T:System.InvalidOperationException">
607 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> doesn't exist.
609 <altmember cref="F:Mono.Unix.Native.Stat.st_dev" />
610 <altmember cref="F:Mono.Unix.Native.System.stat" />
613 <AssemblyVersion>1.0.5000.0</AssemblyVersion>
614 <AssemblyVersion>2.0.0.0</AssemblyVersion>
617 <Member MemberName="DeviceType">
618 <MemberSignature Language="C#" Value="public long DeviceType { get; }" />
619 <MemberType>Property</MemberType>
621 <ReturnType>System.Int64</ReturnType>
624 <summary>Gets the device type of this inode.</summary>
625 <value>A <see cref="T:System.Int64" /> containing the type of this
629 <exception cref="T:System.InvalidOperationException">
630 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> doesn't exist.
632 <altmember cref="F:Mono.Unix.Native.Stat.st_rdev" />
633 <altmember cref="F:Mono.Unix.Native.Syscall.stat" />
636 <AssemblyVersion>1.0.5000.0</AssemblyVersion>
637 <AssemblyVersion>2.0.0.0</AssemblyVersion>
640 <Member MemberName="Exists">
641 <MemberSignature Language="C#" Value="public bool Exists { get; }" />
642 <MemberType>Property</MemberType>
644 <ReturnType>System.Boolean</ReturnType>
647 <summary>Returns a <see cref="T:System.Boolean" /> indicating whether
648 the specified file system object exists.</summary>
651 <see langword="true" /> if the caller has the required permissions
652 and <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
653 contains the name of an existing file or directory; otherwise,
654 <see langword="false" />.
655 If <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is
656 <see langword="null" /> or a zero-length string,
657 returns <see langword="false" />.
661 <para>If the caller does not have sufficient permissions to read
662 the file system object
663 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />, no
664 exception is thrown and the method returns <see langword="false" />
665 regardless of the existence of
666 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.</para>
670 <AssemblyVersion>1.0.5000.0</AssemblyVersion>
671 <AssemblyVersion>2.0.0.0</AssemblyVersion>
674 <Member MemberName="FileAccessPermissions">
675 <MemberSignature Language="C#" Value="public Mono.Unix.FileAccessPermissions FileAccessPermissions { set; get; }" />
676 <MemberType>Property</MemberType>
678 <ReturnType>Mono.Unix.FileAccessPermissions</ReturnType>
681 <summary>Gets or sets the file system entry access permissions.</summary>
682 <value>A <see cref="T:Mono.Unix.FileAccessPermissions" /> value which
683 controls access to the file system entry.</value>
686 Access to file system objects
687 (as represented by <see cref="T:Mono.Unix.UnixFileSystemInfo" />)
688 is controlled by the file system access permissions,
689 <see cref="P:Mono.Unix.UnixFileSystemInfo.FileAccessPermissions" />.
690 <see cref="T:Mono.Unix.FileAccessPermissions" /> is a nine-bit field
691 specifying read, write, and execute access for the owner, group, and
692 everyone else (other).
695 Access by the file's owner is controlled by the bits specified by
697 (<see cref="P:Mono.Unix.UnixFileSystemInfo.FileAccessPermissions" />
699 <see cref="F:Mono.Unix.FileAccessPermissions.UserReadWriteExecute" />)</c>.
700 The owner permissions supersede group permissions and other
701 permissions, even if the owner belongs to the group.
704 Access by the file's owner group is controlled by the bits
706 (<see cref="P:Mono.Unix.UnixFileSystemInfo.FileAccessPermissions" />
708 <see cref="F:Mono.Unix.FileAccessPermissions.GroupReadWriteExecute" />)</c>.
709 All group members get these access permissions.
711 <see cref="P:Mono.Unix.UnixFileSystemInfo.OwnerGroup" />.<see cref="M:Mono.Unix.UnixGroupInfo.GetMembers" />.
714 All other users (users who are not the file's owner nor belonging
715 to the file's owner group) get the file access permissions
717 (<see cref="P:Mono.Unix.UnixFileSystemInfo.FileAccessPermissions" />
719 <see cref="F:Mono.Unix.FileAccessPermissions.OtherReadWriteExecute" />)</c>.
722 <exception cref="T:System.InvalidOperationException">
723 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> doesn't exist.
727 <AssemblyVersion>1.0.5000.0</AssemblyVersion>
728 <AssemblyVersion>2.0.0.0</AssemblyVersion>
731 <Member MemberName="FileSpecialAttributes">
732 <MemberSignature Language="C#" Value="public Mono.Unix.FileSpecialAttributes FileSpecialAttributes { set; get; }" />
733 <MemberType>Property</MemberType>
735 <ReturnType>Mono.Unix.FileSpecialAttributes</ReturnType>
738 <summary>Gets or sets the file system entry special attributes.</summary>
739 <value>A <see cref="T:Mono.Unix.FileSpecialAttributes" /> value which
740 contains the file special attributes to use.</value>
742 <para>Callers may need to be the super user (often the <c>root</c>
743 user) to change the file special attributes.
746 <exception cref="T:System.InvalidOperationException">
747 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> doesn't exist.
751 <AssemblyVersion>1.0.5000.0</AssemblyVersion>
752 <AssemblyVersion>2.0.0.0</AssemblyVersion>
755 <Member MemberName="FileType">
756 <MemberSignature Language="C#" Value="public Mono.Unix.FileTypes FileType { get; }" />
757 <MemberType>Property</MemberType>
759 <ReturnType>Mono.Unix.FileTypes</ReturnType>
762 <summary>Gets the type of this file system entry.</summary>
763 <value>A <see cref="T:Mono.Unix.FileTypes" /> value specifying the type
764 of this file system entry.</value>
767 <exception cref="T:System.InvalidOperationException">
768 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> doesn't exist.
772 <AssemblyVersion>1.0.5000.0</AssemblyVersion>
773 <AssemblyVersion>2.0.0.0</AssemblyVersion>
776 <Member MemberName="FullName">
777 <MemberSignature Language="C#" Value="public virtual string FullName { get; }" />
778 <MemberType>Property</MemberType>
780 <ReturnType>System.String</ReturnType>
783 <summary>Gets the fully-qualified path name.</summary>
784 <value>A <see cref="T:System.String" /> containing the fully-qualified
788 <altmember cref="M:Mono.Unix.UnixPath.GetFullPath" />
791 <AssemblyVersion>1.0.5000.0</AssemblyVersion>
792 <AssemblyVersion>2.0.0.0</AssemblyVersion>
795 <Member MemberName="FullPath">
796 <MemberSignature Language="C#" Value="protected string FullPath { set; get; }" />
797 <MemberType>Property</MemberType>
799 <ReturnType>System.String</ReturnType>
802 <summary>Gets or sets the fully qualified path name.</summary>
803 <value>A <see cref="T:System.String" /> containing the fully qualified
807 If <paramref name="value" /> is a different path, then the state is
808 invalidated. This shouldn't matter, as the state will be
809 re-validated on the next member access.
811 <para>It is possible for the object state to be inconsistent if
812 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullPath" /> is set but
813 not <see cref="P:Mono.Unix.UnixFileSystemInfo.OriginalPath" />.
814 All methods in this class do not use <c>OriginalPath</c> but use
815 <c>FullPath</c>; subclasses such as
816 <see cref="T:Mono.Unix.UnixSymbolicLinkInfo" /> do use
817 <c>OriginalPath</c>. If <c>FullPath</c> is set then
818 <c>OriginalPath</c> should also be set if possible for
822 <exception cref="T:System.ArgumentNullException">
823 <paramref name="path" /> is <see langword="null" />.
825 <exception cref="T:System.ArgumentException">
827 <paramref name="path" /> is a zero-length string.</para>
830 <paramref name="path" /> contains an invalid character.
831 See <see cref="M:Mono.Unix.UnixPath.GetInvalidPathChars" />.
836 <AssemblyVersion>1.0.5000.0</AssemblyVersion>
837 <AssemblyVersion>2.0.0.0</AssemblyVersion>
840 <Member MemberName="GetConfigurationValue">
841 <MemberSignature Language="C#" Value="public long GetConfigurationValue (Mono.Unix.Native.PathconfName name);" />
842 <MemberType>Method</MemberType>
844 <ReturnType>System.Int64</ReturnType>
847 <Parameter Name="name" Type="Mono.Unix.Native.PathconfName" />
850 <param name="name">A <see cref="T:Mono.Unix.Native.PathconfName" />
851 value specifying which configuration value to retreive.</param>
852 <summary>Gets a configurable system limit or option variable
854 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
856 <returns>A <see cref="T:System.Int64" /> containing the value
857 of the configuration variable <paramref name="name" />.
858 If there is no value for the configuration variable
859 <paramref name="name" />, then <c>-1</c> is returned.
863 <exception cref="T:System.ArgumentException">
864 The implementation does not support an association of
865 <paramref name="name" /> with
866 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
868 <exception cref="T:System.UnauthorizedAccessException">
869 <para>Search permission is denied for a component of the path
870 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
871 [<see cref="F:Mono.Unix.Native.Errno.EACCES" />]
874 <exception cref="T:System.IO.DirectoryNotFoundException">
875 A component of the path prefix of
876 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is not a
878 [<see cref="F:Mono.Unix.Native.Errno.ENOTDIR" />]
880 <exception cref="T:System.IO.FileNotFoundException">
881 A component of <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
882 that must exist does not exist.
883 [<see cref="F:Mono.Unix.Native.Errno.ENOENT" />]
885 <exception cref="T:System.IO.PathTooLongException">
886 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> was too long.
887 [<see cref="F:Mono.Unix.Native.Errno.ENAMETOOLONG" />]
889 <exception cref="T:System.IO.IOException">
890 An I/O error occurred while reading from or writing to the file
893 <exception cref="T:Mono.Unix.UnixIOException">
894 <para>Too many symbolic links were encountered in translating
895 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
896 [<see cref="F:Mono.Unix.Native.Errno.ELOOP" />]
899 <altmember cref="M:Mono.Unix.Native.Syscall.pathconf" />
902 <AssemblyVersion>1.0.5000.0</AssemblyVersion>
903 <AssemblyVersion>2.0.0.0</AssemblyVersion>
907 <AttributeName>System.CLSCompliant(false)</AttributeName>
911 <Member MemberName="GetFileStatus">
912 <MemberSignature Language="C#" Value="protected virtual bool GetFileStatus (string path, out Mono.Unix.Native.Stat stat);" />
913 <MemberType>Method</MemberType>
915 <ReturnType>System.Boolean</ReturnType>
918 <Parameter Name="path" Type="System.String" />
919 <Parameter Name="stat" Type="Mono.Unix.Native.Stat&" RefType="out" />
922 <param name="path">A <see cref="T:System.String" /> containing the path
923 to retrieve information about</param>
924 <param name="stat">A <see cref="T:Mono.Unix.Native.Stat" /> which will
925 contain information about <paramref name="path" />.</param>
926 <summary>Gets file status information.</summary>
927 <returns>A <see cref="T:System.Boolean" /> specifying whether
928 <paramref name="stat" /> was filled. If <see langword="true" />, then
929 <paramref name="path" /> exists and <paramref name="stat" /> contains
930 valid information. Otherwise, <paramref name="path" /> is assumed to
931 not exist and <paramref name="stat" /> is assumed to contain invalid
938 <AssemblyVersion>1.0.5000.0</AssemblyVersion>
939 <AssemblyVersion>2.0.0.0</AssemblyVersion>
942 <Member MemberName="GetFileSystemEntry">
943 <MemberSignature Language="C#" Value="public static Mono.Unix.UnixFileSystemInfo GetFileSystemEntry (string path);" />
944 <MemberType>Method</MemberType>
946 <ReturnType>Mono.Unix.UnixFileSystemInfo</ReturnType>
949 <Parameter Name="path" Type="System.String" />
952 <param name="path">To be added.</param>
953 <summary>To be added.</summary>
954 <returns>To be added.</returns>
955 <remarks>To be added.</remarks>
958 <AssemblyVersion>1.0.5000.0</AssemblyVersion>
959 <AssemblyVersion>2.0.0.0</AssemblyVersion>
962 <Member MemberName="Inode">
963 <MemberSignature Language="C#" Value="public long Inode { get; }" />
964 <MemberType>Property</MemberType>
966 <ReturnType>System.Int64</ReturnType>
969 <summary>Gets the inode of this file system entry.</summary>
970 <value>A <see cref="T:System.Int64" /> containing the inode of this
971 file system entry.</value>
974 <exception cref="T:System.InvalidOperationException">
975 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> doesn't exist.
977 <altmember cref="F:Mono.Unix.Native.Stat.st_ino" />
978 <altmember cref="F:Mono.Unix.Native.System.stat" />
981 <AssemblyVersion>1.0.5000.0</AssemblyVersion>
982 <AssemblyVersion>2.0.0.0</AssemblyVersion>
985 <Member MemberName="IsBlockDevice">
986 <MemberSignature Language="C#" Value="public bool IsBlockDevice { get; }" />
987 <MemberType>Property</MemberType>
989 <ReturnType>System.Boolean</ReturnType>
993 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> a
994 <see cref="F:Mono.Unix.FileTypes.BlockDevice" />?</summary>
996 A <see cref="T:System.Boolean" /> indicating whether or not
997 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a
998 <see cref="F:Mono.Unix.FileTypes.BlockDevice" />.
1001 <para>This is equivalent to comparing
1002 <see cref="P:Mono.Unix.UnixFileSystemInfo.FileType" /> to
1003 <see cref="F:Mono.Unix.FileTypes.BlockDevice" />.
1006 <exception cref="T:System.InvalidOperationException">
1007 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> doesn't exist.
1011 <AssemblyVersion>1.0.5000.0</AssemblyVersion>
1012 <AssemblyVersion>2.0.0.0</AssemblyVersion>
1015 <Member MemberName="IsCharacterDevice">
1016 <MemberSignature Language="C#" Value="public bool IsCharacterDevice { get; }" />
1017 <MemberType>Property</MemberType>
1019 <ReturnType>System.Boolean</ReturnType>
1023 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> a
1024 <see cref="F:Mono.Unix.FileTypes.CharacterDevice" />?</summary>
1026 A <see cref="T:System.Boolean" /> indicating whether or not
1027 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a
1028 <see cref="F:Mono.Unix.FileTypes.CharacterDevice" />.
1031 <para>This is equivalent to comparing
1032 <see cref="P:Mono.Unix.UnixFileSystemInfo.FileType" /> to
1033 <see cref="F:Mono.Unix.FileTypes.CharacterDevice" />.
1036 <exception cref="T:System.InvalidOperationException">
1037 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> doesn't exist.
1041 <AssemblyVersion>1.0.5000.0</AssemblyVersion>
1042 <AssemblyVersion>2.0.0.0</AssemblyVersion>
1045 <Member MemberName="IsDirectory">
1046 <MemberSignature Language="C#" Value="public bool IsDirectory { get; }" />
1047 <MemberType>Property</MemberType>
1049 <ReturnType>System.Boolean</ReturnType>
1053 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> a
1054 <see cref="F:Mono.Unix.FileTypes.Directory" />?</summary>
1056 A <see cref="T:System.Boolean" /> indicating whether or not
1057 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a
1058 <see cref="F:Mono.Unix.FileTypes.Directory" />.
1061 <para>This is equivalent to comparing
1062 <see cref="P:Mono.Unix.UnixFileSystemInfo.FileType" /> to
1063 <see cref="F:Mono.Unix.FileTypes.Directory" />.
1066 <exception cref="T:System.InvalidOperationException">
1067 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> doesn't exist.
1071 <AssemblyVersion>1.0.5000.0</AssemblyVersion>
1072 <AssemblyVersion>2.0.0.0</AssemblyVersion>
1075 <Member MemberName="IsFifo">
1076 <MemberSignature Language="C#" Value="public bool IsFifo { get; }" />
1077 <MemberType>Property</MemberType>
1079 <ReturnType>System.Boolean</ReturnType>
1083 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> a
1084 <see cref="F:Mono.Unix.FileTypes.Fifo" />?</summary>
1086 A <see cref="T:System.Boolean" /> indicating whether or not
1087 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a
1088 <see cref="F:Mono.Unix.FileTypes.Fifo" />.
1091 <para>This is equivalent to comparing
1092 <see cref="P:Mono.Unix.UnixFileSystemInfo.FileType" /> to
1093 <see cref="F:Mono.Unix.FileTypes.Fifo" />.
1096 <exception cref="T:System.InvalidOperationException">
1097 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> doesn't exist.
1101 <AssemblyVersion>1.0.5000.0</AssemblyVersion>
1102 <AssemblyVersion>2.0.0.0</AssemblyVersion>
1105 <Member MemberName="IsRegularFile">
1106 <MemberSignature Language="C#" Value="public bool IsRegularFile { get; }" />
1107 <MemberType>Property</MemberType>
1109 <ReturnType>System.Boolean</ReturnType>
1113 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> a
1114 <see cref="F:Mono.Unix.FileTypes.RegularFile" />?</summary>
1116 A <see cref="T:System.Boolean" /> indicating whether or not
1117 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a
1118 <see cref="F:Mono.Unix.FileTypes.RegularFile" />.
1121 <para>This is equivalent to comparing
1122 <see cref="P:Mono.Unix.UnixFileSystemInfo.FileType" /> to
1123 <see cref="F:Mono.Unix.FileTypes.RegularFile" />.
1126 <exception cref="T:System.InvalidOperationException">
1127 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> doesn't exist.
1131 <AssemblyVersion>1.0.5000.0</AssemblyVersion>
1132 <AssemblyVersion>2.0.0.0</AssemblyVersion>
1135 <Member MemberName="IsSetGroup">
1136 <MemberSignature Language="C#" Value="public bool IsSetGroup { get; }" />
1137 <MemberType>Property</MemberType>
1139 <ReturnType>System.Boolean</ReturnType>
1143 <see cref="P:Mono.Unix.UnixFileSystemInfo.FileSpecialAttributes" /> include
1144 <see cref="F:Mono.Unix.FileSpecialAttributes.SetGroupId" />?</summary>
1146 A <see cref="T:System.Boolean" /> indicating whether or not
1147 <see cref="P:Mono.Unix.UnixFileSystemInfo.FileSpecialAttributes" /> includes
1148 <see cref="F:Mono.Unix.FileSpecialAttributes.SetGroupId" />.
1151 <para>This is equivalent to comparing
1152 <see cref="P:Mono.Unix.UnixFileSystemInfo.FileSpecialAttributes" /> with
1153 <see cref="F:Mono.Unix.FileSpecialAttributes.SetGroupId" />.
1156 <exception cref="T:System.InvalidOperationException">
1157 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> doesn't exist.
1161 <AssemblyVersion>1.0.5000.0</AssemblyVersion>
1162 <AssemblyVersion>2.0.0.0</AssemblyVersion>
1165 <Member MemberName="IsSetUser">
1166 <MemberSignature Language="C#" Value="public bool IsSetUser { get; }" />
1167 <MemberType>Property</MemberType>
1169 <ReturnType>System.Boolean</ReturnType>
1173 <see cref="P:Mono.Unix.UnixFileSystemInfo.FileSpecialAttributes" /> include
1174 <see cref="F:Mono.Unix.FileSpecialAttributes.SetUserId" />?</summary>
1176 A <see cref="T:System.Boolean" /> indicating whether or not
1177 <see cref="P:Mono.Unix.UnixFileSystemInfo.FileSpecialAttributes" /> includes
1178 <see cref="F:Mono.Unix.FileSpecialAttributes.SetUserId" />.
1181 <para>This is equivalent to comparing
1182 <see cref="P:Mono.Unix.UnixFileSystemInfo.FileSpecialAttributes" /> with
1183 <see cref="F:Mono.Unix.FileSpecialAttributes.SetUserId" />.
1186 <exception cref="T:System.InvalidOperationException">
1187 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> doesn't exist.
1191 <AssemblyVersion>1.0.5000.0</AssemblyVersion>
1192 <AssemblyVersion>2.0.0.0</AssemblyVersion>
1195 <Member MemberName="IsSocket">
1196 <MemberSignature Language="C#" Value="public bool IsSocket { get; }" />
1197 <MemberType>Property</MemberType>
1199 <ReturnType>System.Boolean</ReturnType>
1203 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> a
1204 <see cref="F:Mono.Unix.FileTypes.Socket" />?</summary>
1206 A <see cref="T:System.Boolean" /> indicating whether or not
1207 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a
1208 <see cref="F:Mono.Unix.FileTypes.Socket" />.
1211 <para>This is equivalent to comparing
1212 <see cref="P:Mono.Unix.UnixFileSystemInfo.FileType" /> to
1213 <see cref="F:Mono.Unix.FileTypes.Socket" />.
1216 <exception cref="T:System.InvalidOperationException">
1217 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> doesn't exist.
1221 <AssemblyVersion>1.0.5000.0</AssemblyVersion>
1222 <AssemblyVersion>2.0.0.0</AssemblyVersion>
1225 <Member MemberName="IsSticky">
1226 <MemberSignature Language="C#" Value="public bool IsSticky { get; }" />
1227 <MemberType>Property</MemberType>
1229 <ReturnType>System.Boolean</ReturnType>
1233 <see cref="P:Mono.Unix.UnixFileSystemInfo.FileSpecialAttributes" /> include
1234 <see cref="F:Mono.Unix.FileSpecialAttributes.Sticky" />?</summary>
1236 A <see cref="T:System.Boolean" /> indicating whether or not
1237 <see cref="P:Mono.Unix.UnixFileSystemInfo.FileSpecialAttributes" /> includes
1238 <see cref="F:Mono.Unix.FileSpecialAttributes.Sticky" />.
1241 <para>This is equivalent to comparing
1242 <see cref="P:Mono.Unix.UnixFileSystemInfo.FileSpecialAttributes" /> with
1243 <see cref="F:Mono.Unix.FileSpecialAttributes.Sticky" />.
1246 <exception cref="T:System.InvalidOperationException">
1247 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> doesn't exist.
1251 <AssemblyVersion>1.0.5000.0</AssemblyVersion>
1252 <AssemblyVersion>2.0.0.0</AssemblyVersion>
1255 <Member MemberName="IsSymbolicLink">
1256 <MemberSignature Language="C#" Value="public bool IsSymbolicLink { get; }" />
1257 <MemberType>Property</MemberType>
1259 <ReturnType>System.Boolean</ReturnType>
1263 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> a
1264 <see cref="F:Mono.Unix.FileTypes.SymbolicLink" />?</summary>
1266 A <see cref="T:System.Boolean" /> indicating whether or not
1267 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a
1268 <see cref="F:Mono.Unix.FileTypes.SymbolicLink" />.
1271 <para>This is equivalent to comparing
1272 <see cref="P:Mono.Unix.UnixFileSystemInfo.FileType" /> to
1273 <see cref="F:Mono.Unix.FileTypes.SymbolicLink" />.
1276 <exception cref="T:System.InvalidOperationException">
1277 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> doesn't exist.
1281 <AssemblyVersion>1.0.5000.0</AssemblyVersion>
1282 <AssemblyVersion>2.0.0.0</AssemblyVersion>
1285 <Member MemberName="LastAccessTime">
1286 <MemberSignature Language="C#" Value="public DateTime LastAccessTime { get; }" />
1287 <MemberType>Property</MemberType>
1289 <ReturnType>System.DateTime</ReturnType>
1292 <summary>Gets or sets the last file access time expressed in local
1294 <value>The last access time of
1295 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
1296 expressed in the local time.</value>
1299 <exception cref="T:System.InvalidOperationException">
1300 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> doesn't exist.
1302 <altmember cref="F:Mono.Unix.Native.Stat.st_atime" />
1303 <altmember cref="F:Mono.Unix.Native.Syscall.stat" />
1306 <AssemblyVersion>1.0.5000.0</AssemblyVersion>
1307 <AssemblyVersion>2.0.0.0</AssemblyVersion>
1310 <Member MemberName="LastAccessTimeUtc">
1311 <MemberSignature Language="C#" Value="public DateTime LastAccessTimeUtc { get; }" />
1312 <MemberType>Property</MemberType>
1314 <ReturnType>System.DateTime</ReturnType>
1317 <summary>Gets or sets the last file access time expressed in
1318 coordinated universal time (UTC).</summary>
1319 <value>The last access time of
1320 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
1321 expressed in coordinated universal time (UTC).</value>
1324 <exception cref="T:System.InvalidOperationException">
1325 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> doesn't exist.
1327 <altmember cref="F:Mono.Unix.Native.Stat.st_atime" />
1328 <altmember cref="F:Mono.Unix.Native.Syscall.stat" />
1331 <AssemblyVersion>1.0.5000.0</AssemblyVersion>
1332 <AssemblyVersion>2.0.0.0</AssemblyVersion>
1335 <Member MemberName="LastStatusChangeTime">
1336 <MemberSignature Language="C#" Value="public DateTime LastStatusChangeTime { get; }" />
1337 <MemberType>Property</MemberType>
1339 <ReturnType>System.DateTime</ReturnType>
1342 <summary>Gets or sets the last status change time expressed in local
1344 <value>The last status change time of
1345 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
1346 expressed in the local time.</value>
1349 <exception cref="T:System.InvalidOperationException">
1350 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> doesn't exist.
1352 <altmember cref="F:Mono.Unix.Native.Stat.st_ctime" />
1353 <altmember cref="F:Mono.Unix.Native.Syscall.stat" />
1356 <AssemblyVersion>1.0.5000.0</AssemblyVersion>
1357 <AssemblyVersion>2.0.0.0</AssemblyVersion>
1360 <Member MemberName="LastStatusChangeTimeUtc">
1361 <MemberSignature Language="C#" Value="public DateTime LastStatusChangeTimeUtc { get; }" />
1362 <MemberType>Property</MemberType>
1364 <ReturnType>System.DateTime</ReturnType>
1367 <summary>Gets or sets the last status change time expressed in
1368 coordinated universal time (UTC).</summary>
1369 <value>The last status change time of
1370 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
1371 expressed in coordinated universal time (UTC).</value>
1374 <exception cref="T:System.InvalidOperationException">
1375 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> doesn't exist.
1377 <altmember cref="F:Mono.Unix.Native.Stat.st_ctime" />
1378 <altmember cref="F:Mono.Unix.Native.Syscall.stat" />
1381 <AssemblyVersion>1.0.5000.0</AssemblyVersion>
1382 <AssemblyVersion>2.0.0.0</AssemblyVersion>
1385 <Member MemberName="LastWriteTime">
1386 <MemberSignature Language="C#" Value="public DateTime LastWriteTime { get; }" />
1387 <MemberType>Property</MemberType>
1389 <ReturnType>System.DateTime</ReturnType>
1392 <summary>Gets or sets the last file write time expressed in local
1394 <value>The last write time of
1395 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
1396 expressed in the local time.</value>
1399 <exception cref="T:System.InvalidOperationException">
1400 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> doesn't exist.
1402 <altmember cref="F:Mono.Unix.Native.Stat.st_mtime" />
1403 <altmember cref="F:Mono.Unix.Native.Syscall.stat" />
1406 <AssemblyVersion>1.0.5000.0</AssemblyVersion>
1407 <AssemblyVersion>2.0.0.0</AssemblyVersion>
1410 <Member MemberName="LastWriteTimeUtc">
1411 <MemberSignature Language="C#" Value="public DateTime LastWriteTimeUtc { get; }" />
1412 <MemberType>Property</MemberType>
1414 <ReturnType>System.DateTime</ReturnType>
1417 <summary>Gets or sets the last file write time expressed in
1418 coordinated universal time (UTC).</summary>
1419 <value>The last write time of
1420 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
1421 expressed in coordinated universal time (UTC).</value>
1424 <exception cref="T:System.InvalidOperationException">
1425 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> doesn't exist.
1427 <altmember cref="F:Mono.Unix.Native.Stat.st_mtime" />
1428 <altmember cref="F:Mono.Unix.Native.Syscall.stat" />
1431 <AssemblyVersion>1.0.5000.0</AssemblyVersion>
1432 <AssemblyVersion>2.0.0.0</AssemblyVersion>
1435 <Member MemberName="Length">
1436 <MemberSignature Language="C#" Value="public long Length { get; }" />
1437 <MemberType>Property</MemberType>
1439 <ReturnType>System.Int64</ReturnType>
1442 <summary>Gets the file system entry size, in bytes.</summary>
1443 <value>A <see cref="T:System.Int64" /> containing the size of this file
1444 system entry, in bytes.</value>
1447 <exception cref="T:System.InvalidOperationException">
1448 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> doesn't exist.
1450 <altmember cref="F:Mono.Unix.Native.Stat.st_size" />
1451 <altmember cref="F:Mono.Unix.Native.Syscall.stat" />
1454 <AssemblyVersion>1.0.5000.0</AssemblyVersion>
1455 <AssemblyVersion>2.0.0.0</AssemblyVersion>
1458 <Member MemberName="LinkCount">
1459 <MemberSignature Language="C#" Value="public long LinkCount { get; }" />
1460 <MemberType>Property</MemberType>
1462 <ReturnType>System.Int64</ReturnType>
1465 <summary>Gets the current link count of this file system entry.</summary>
1466 <value>A <see cref="T:System.Int64" /> containing link count of this
1467 file system entry.</value>
1469 <para>A link count is the number of file system entries that share
1470 this <see cref="P:Mono.Unix.UnixFileSystemInfo.Inode" />.
1474 <see cref="M:Mono.Unix.UnixFileSystemInfo.GetConfigurationValue" />(<see cref="M:Mono.Unix.Native.PathconfName._PC_LINK_MAX" />)
1475 to determine the maximum link count.
1478 <exception cref="T:System.InvalidOperationException">
1479 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> doesn't exist.
1483 <AssemblyVersion>1.0.5000.0</AssemblyVersion>
1484 <AssemblyVersion>2.0.0.0</AssemblyVersion>
1487 <Member MemberName="Name">
1488 <MemberSignature Language="C#" Value="public abstract string Name { get; }" />
1489 <MemberType>Property</MemberType>
1491 <ReturnType>System.String</ReturnType>
1494 <summary>The file system entry name.</summary>
1495 <value>A <see cref="T:System.String" /> containing the file system
1500 This will generally be
1501 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> without the
1505 <altmember cref="M:Mono.Unix.UnixPath.GetFileName" />
1506 <altmember cref="M:Mono.Unix.UnixPath.GetDirectoryName" />
1509 <AssemblyVersion>1.0.5000.0</AssemblyVersion>
1510 <AssemblyVersion>2.0.0.0</AssemblyVersion>
1513 <Member MemberName="OriginalPath">
1514 <MemberSignature Language="C#" Value="protected string OriginalPath { set; get; }" />
1515 <MemberType>Property</MemberType>
1517 <ReturnType>System.String</ReturnType>
1520 <summary>The original string passed to the
1521 <see cref="C:Mono.Unix.UnixFileSystemInfo(System.String)" />
1522 constructor.</summary>
1523 <value>A <see cref="T:System.String" /> containing
1524 the original string passed to the
1525 <see cref="C:Mono.Unix.UnixFileSystemInfo(System.String)" />
1526 constructor. It may contain relative path information without a
1527 qualifying directory, if that's what was originally provided to the
1531 <para>This is primarily useful if you need relative path names
1532 instead of fully-qualified directory names, such as when dealing
1533 with symbolic links (with
1534 <see cref="T:Mono.Unix.UnixSymbolicLinkInfo" />).
1536 <para>It is possible for the object state to be inconsistent if
1537 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullPath" /> is set but
1538 not <see cref="P:Mono.Unix.UnixFileSystemInfo.OriginalPath" />.
1539 All methods in this class do not use <c>OriginalPath</c> but use
1540 <c>FullPath</c>; subclasses such as
1541 <see cref="T:Mono.Unix.UnixSymbolicLinkInfo" /> do use
1542 <c>OriginalPath</c>. If <c>FullPath</c> is set then
1543 <c>OriginalPath</c> should also be set if possible for
1549 <AssemblyVersion>1.0.5000.0</AssemblyVersion>
1550 <AssemblyVersion>2.0.0.0</AssemblyVersion>
1553 <Member MemberName="OwnerGroup">
1554 <MemberSignature Language="C#" Value="public Mono.Unix.UnixGroupInfo OwnerGroup { get; }" />
1555 <MemberType>Property</MemberType>
1557 <ReturnType>Mono.Unix.UnixGroupInfo</ReturnType>
1560 <summary>Gets information about the owner group.</summary>
1561 <value>A <see cref="T:Mono.Unix.UnixGroupInfo" /> instance containing
1562 information about the owner group.</value>
1564 <para>This is identical to <see cref="C:Mono.Unix.UnixGroupInfo" />(<see cref="P:Mono.Unix.UnixFileSystemInfo.OwnerGroupId" />).
1567 <exception cref="T:System.InvalidOperationException">
1568 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> doesn't exist.
1570 <altmember cref="F:Mono.Unix.Native.Stat.st_gid" />
1571 <altmember cref="F:Mono.Unix.Native.Syscall.stat" />
1574 <AssemblyVersion>1.0.5000.0</AssemblyVersion>
1575 <AssemblyVersion>2.0.0.0</AssemblyVersion>
1578 <Member MemberName="OwnerGroupId">
1579 <MemberSignature Language="C#" Value="public long OwnerGroupId { get; }" />
1580 <MemberType>Property</MemberType>
1582 <ReturnType>System.Int64</ReturnType>
1585 <summary>Gets the owner group id.</summary>
1586 <value>A <see cref="T:System.Int64" /> containing the owner group id.</value>
1589 <exception cref="T:System.InvalidOperationException">
1590 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> doesn't exist.
1592 <altmember cref="F:Mono.Unix.Native.Stat.st_gid" />
1593 <altmember cref="F:Mono.Unix.Native.Syscall.stat" />
1596 <AssemblyVersion>1.0.5000.0</AssemblyVersion>
1597 <AssemblyVersion>2.0.0.0</AssemblyVersion>
1600 <Member MemberName="OwnerUser">
1601 <MemberSignature Language="C#" Value="public Mono.Unix.UnixUserInfo OwnerUser { get; }" />
1602 <MemberType>Property</MemberType>
1604 <ReturnType>Mono.Unix.UnixUserInfo</ReturnType>
1607 <summary>Gets information about the owner user.</summary>
1608 <value>A <see cref="T:Mono.Unix.UnixUserInfo" /> containing information
1609 about the owner user.</value>
1611 <para>This is identical to <see cref="C:Mono.Unix.UnixUserInfo" />(<see cref="P:Mono.Unix.UnixFileSystemInfo.OwnerUserId" />).
1614 <exception cref="T:System.InvalidOperationException">
1615 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> doesn't exist.
1617 <altmember cref="F:Mono.Unix.Native.Stat.st_uid" />
1618 <altmember cref="F:Mono.Unix.Native.Syscall.stat" />
1621 <AssemblyVersion>1.0.5000.0</AssemblyVersion>
1622 <AssemblyVersion>2.0.0.0</AssemblyVersion>
1625 <Member MemberName="OwnerUserId">
1626 <MemberSignature Language="C#" Value="public long OwnerUserId { get; }" />
1627 <MemberType>Property</MemberType>
1629 <ReturnType>System.Int64</ReturnType>
1632 <summary>Gets the owner user id.</summary>
1634 A <see cref="T:System.Int64" /> containing the owner user id.
1638 <exception cref="T:System.InvalidOperationException">
1639 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> doesn't exist.
1641 <altmember cref="F:Mono.Unix.Native.Stat.st_uid" />
1642 <altmember cref="F:Mono.Unix.Native.Syscall.stat" />
1645 <AssemblyVersion>1.0.5000.0</AssemblyVersion>
1646 <AssemblyVersion>2.0.0.0</AssemblyVersion>
1649 <Member MemberName="Protection">
1650 <MemberSignature Language="C#" Value="public Mono.Unix.Native.FilePermissions Protection { set; get; }" />
1651 <MemberType>Property</MemberType>
1654 <AttributeName>System.CLSCompliant(false)</AttributeName>
1658 <ReturnType>Mono.Unix.Native.FilePermissions</ReturnType>
1661 <summary>Gets or sets the file system entry protection.</summary>
1662 <value>A <see cref="T:Mono.Unix.Native.FilePermissions" /> value
1663 containing the file system entry protection.</value>
1666 <exception cref="T:System.InvalidOperationException">
1667 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> doesn't exist.
1669 <altmember cref="F:Mono.Unix.Native.Stat.st_mode" />
1670 <altmember cref="F:Mono.Unix.Native.Syscall.stat" />
1673 <AssemblyVersion>1.0.5000.0</AssemblyVersion>
1674 <AssemblyVersion>2.0.0.0</AssemblyVersion>
1677 <Member MemberName="Refresh">
1678 <MemberSignature Language="C#" Value="public void Refresh ();" />
1679 <MemberType>Method</MemberType>
1681 <ReturnType>System.Void</ReturnType>
1685 <summary>Refreshes the file system metadata presented.</summary>
1687 <para>This method does not throw exceptions.</para>
1689 Many properties and members will throw a
1690 <see cref="T:System.InvalidOperationException" /> if
1691 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> doesn't
1693 <see cref="P:Mono.Unix.UnixFileSystemInfo.Exists" /> returns
1694 <see langword="false" />).
1697 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is checked
1698 during <see cref="T:Mono.Unix.UnixFileSystemInfo" /> creation and
1699 on every property access until the file is found. Once found, the
1700 file will not be checked for until
1701 <see cref="M:Mono.Unix.UnixFileSystemInfo.Refresh" /> is invoked.
1704 Consequently, if the file system entry is removed
1705 (via <see cref="M:Mono.Unix.UnixFileSystemInfo.Delete" /> or
1706 another process or some other means) or changed
1707 (written to, <c>touch(1)</c>'d, etc.), the information provided by
1708 this class will be stale and out of date.
1711 Use this method to refresh the information provided by this class.
1716 <AssemblyVersion>1.0.5000.0</AssemblyVersion>
1717 <AssemblyVersion>2.0.0.0</AssemblyVersion>
1720 <Member MemberName="SetLength">
1721 <MemberSignature Language="C#" Value="public void SetLength (long length);" />
1722 <MemberType>Method</MemberType>
1724 <ReturnType>System.Void</ReturnType>
1727 <Parameter Name="length" Type="System.Int64" />
1730 <param name="length">A <see cref="T:System.Int64" /> containing the
1731 desired file size for
1732 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /></param>
1733 <summary>Truncate or extend
1734 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> to be
1735 <paramref name="length" /> bytes in size.
1738 <para>If <see cref="P:Mono.Unix.UnixFileSystemInfo.Length" /> is
1739 less than <paramref name="length" />, the file will be extended as
1740 if by writing bytes with the value zero.
1742 <para>If <see cref="P:Mono.Unix.UnixFileSystemInfo.Length" /> is
1743 greater than <paramref name="length" />, then the extra data is
1747 <exception cref="T:System.UnauthorizedAccessException">
1748 <para>Search permission is denied for a component of the path
1749 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
1750 [<see cref="F:Mono.Unix.Native.Errno.EACCES" />]
1754 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is not
1755 writable by the user.
1756 [<see cref="F:Mono.Unix.Native.Errno.EACCES" />]
1760 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a
1762 [<see cref="F:Mono.Unix.Native.Errno.EISDIR" />]
1765 <exception cref="T:System.IO.DirectoryNotFoundException">
1766 A component of the path prefix of
1767 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is not a
1769 [<see cref="F:Mono.Unix.Native.Errno.ENOTDIR" />]
1771 <exception cref="T:System.IO.FileNotFoundException">
1772 A component of <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
1773 that must exist does not exist.
1774 [<see cref="F:Mono.Unix.Native.Errno.ENOENT" />]
1776 <exception cref="T:System.IO.IOException">
1778 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> resides on a
1779 read-only file system.
1780 [<see cref="F:Mono.Unix.Native.Errno.EROFS" />]
1783 <para>An I/O error occurred while making the directory entry or
1784 allocating the inode.
1785 [<see cref="F:Mono.Unix.Native.Errno.EIO" />]
1788 <exception cref="T:System.IO.PathTooLongException">
1789 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> was too long.
1790 [<see cref="F:Mono.Unix.Native.Errno.ENAMETOOLONG" />]
1792 <exception cref="T:Mono.Unix.UnixIOException">
1793 <para>Too many symbolic links were encountered in translating
1794 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
1795 [<see cref="F:Mono.Unix.Native.Errno.ELOOP" />]
1799 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is a
1800 pure procedure (shared text) file that is being executed and
1801 <see cref="M:Mono.Unix.Native.Syscall.open" /> requests write
1803 [<see cref="F:Mono.Unix.Native.Errno.ETXTBSY" />]
1806 <altmember cref="M:Mono.Unix.Native.Syscall.truncate" />
1809 <AssemblyVersion>1.0.5000.0</AssemblyVersion>
1810 <AssemblyVersion>2.0.0.0</AssemblyVersion>
1813 <Member MemberName="SetOwner">
1814 <MemberSignature Language="C#" Value="public void SetOwner (Mono.Unix.UnixUserInfo owner);" />
1815 <MemberType>Method</MemberType>
1817 <ReturnType>System.Void</ReturnType>
1820 <Parameter Name="owner" Type="Mono.Unix.UnixUserInfo" />
1823 <param name="owner">A <see cref="T:Mono.Unix.UnixUserInfo" /> containing
1824 information about the new owner user and owner group.
1826 <summary>Set the owner user and owner group of
1827 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
1831 If this is called by the non-super user (usually the <c>root</c>
1833 <see cref="F:Mono.Unix.FileSpecialAttributes.SetUserId" /> and
1834 <see cref="F:Mono.Unix.FileSpecialAttributes.SetGroupId" /> bits
1838 Classes deriving from <see cref="T:Mono.Unix.UnixFileSystemInfo" />
1839 can change this method to operate on a different file. This
1840 default version will follow symbolic links, changing the
1841 permissions of the symbolic link target instead of the symbolic
1843 <see cref="M:Mono.Unix.UnixSymbolicLinkInfo.SetOwner" /> changes
1844 permissions on the symbolic link itself.
1847 This is (almost) equivalent to calling
1848 <see cref="M:Mono.Unix.UnixFileSystemInfo.SetOwner" />(<paramref name="owner" />.UserId,
1849 <paramref name="group" />.GroupId).
1852 This is (almost) equivalent to calling
1853 <see cref="M:Mono.Unix.UnixFileSystemInfo.SetOwner" />(<paramref name="owner" />.UserId,
1854 <paramref name="owner" />.GroupId).
1857 <exception cref="T:System.InvalidOperationException">
1858 The effective user ID does not match the owner of the file and the
1859 effective user ID is not the super-user.
1860 [<see cref="F:Mono.Unix.Native.Errno.EPERM" />]
1862 <exception cref="T:System.UnauthorizedAccessException">
1863 <para>Search permission is denied for a component of the path
1864 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
1865 [<see cref="F:Mono.Unix.Native.Errno.EACCES" />]
1868 <exception cref="T:System.IO.DirectoryNotFoundException">
1869 A component of the path prefix of
1870 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is not a
1872 [<see cref="F:Mono.Unix.Native.Errno.ENOTDIR" />]
1874 <exception cref="T:System.IO.FileNotFoundException">
1875 A component of <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
1876 that must exist does not exist.
1877 [<see cref="F:Mono.Unix.Native.Errno.ENOENT" />]
1879 <exception cref="T:System.IO.IOException">
1881 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> resides on a
1882 read-only file system.
1883 [<see cref="F:Mono.Unix.Native.Errno.EROFS" />]
1886 <para>An I/O error occurred while making the directory entry or
1887 allocating the inode.
1888 [<see cref="F:Mono.Unix.Native.Errno.EIO" />]
1891 <exception cref="T:System.IO.PathTooLongException">
1892 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> was too long.
1893 [<see cref="F:Mono.Unix.Native.Errno.ENAMETOOLONG" />]
1895 <exception cref="T:Mono.Unix.UnixIOException">
1896 <para>Too many symbolic links were encountered in translating
1897 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
1898 [<see cref="F:Mono.Unix.Native.Errno.ELOOP" />]
1901 <para>An attempt was made to set the sticky bit upon an
1903 [<see cref="F:Mono.Unix.Native.Errno.EFTYPE" />]
1906 <altmember cref="M:Mono.Unix.Native.Syscall.chown" />
1909 <AssemblyVersion>1.0.5000.0</AssemblyVersion>
1910 <AssemblyVersion>2.0.0.0</AssemblyVersion>
1913 <Member MemberName="SetOwner">
1914 <MemberSignature Language="C#" Value="public void SetOwner (string owner);" />
1915 <MemberType>Method</MemberType>
1917 <ReturnType>System.Void</ReturnType>
1920 <Parameter Name="owner" Type="System.String" />
1923 <param name="owner">A <see cref="T:System.String" /> containing the
1924 user name to use for the new user-id and group-id.</param>
1925 <summary>Set the owner user ID and owner group ID of
1926 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
1929 <para>The user <paramref name="owner" /> is looked up in the local
1930 password database and the resulting
1931 <see cref="P:Mono.Unix.UnixUserInfo.UserId" /> and
1932 <see cref="P:Mono.Unix.UnixUserInfo.GroupId" /> are used as the new
1933 owner user id and owner group id for
1934 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
1937 If this is called by the non-super user (usually the <c>root</c>
1939 <see cref="F:Mono.Unix.FileSpecialAttributes.SetUserId" /> and
1940 <see cref="F:Mono.Unix.FileSpecialAttributes.SetGroupId" /> bits
1944 Classes deriving from <see cref="T:Mono.Unix.UnixFileSystemInfo" />
1945 can change this method to operate on a different file. This
1946 default version will follow symbolic links, changing the
1947 permissions of the symbolic link target instead of the symbolic
1949 <see cref="M:Mono.Unix.UnixSymbolicLinkInfo.SetOwner" /> changes
1950 permissions on the symbolic link itself.
1953 <exception cref="T:System.InvalidOperationException">
1954 The effective user ID does not match the owner of the file and the
1955 effective user ID is not the super-user.
1956 [<see cref="F:Mono.Unix.Native.Errno.EPERM" />]
1958 <exception cref="T:System.UnauthorizedAccessException">
1959 <para>Search permission is denied for a component of the path
1960 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
1961 [<see cref="F:Mono.Unix.Native.Errno.EACCES" />]
1964 <exception cref="T:System.IO.DirectoryNotFoundException">
1965 A component of the path prefix of
1966 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is not a
1968 [<see cref="F:Mono.Unix.Native.Errno.ENOTDIR" />]
1970 <exception cref="T:System.IO.FileNotFoundException">
1971 A component of <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
1972 that must exist does not exist.
1973 [<see cref="F:Mono.Unix.Native.Errno.ENOENT" />]
1975 <exception cref="T:System.IO.IOException">
1977 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> resides on a
1978 read-only file system.
1979 [<see cref="F:Mono.Unix.Native.Errno.EROFS" />]
1982 <para>An I/O error occurred while making the directory entry or
1983 allocating the inode.
1984 [<see cref="F:Mono.Unix.Native.Errno.EIO" />]
1987 <exception cref="T:System.IO.PathTooLongException">
1988 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> was too long.
1989 [<see cref="F:Mono.Unix.Native.Errno.ENAMETOOLONG" />]
1991 <exception cref="T:Mono.Unix.UnixIOException">
1992 <para>Too many symbolic links were encountered in translating
1993 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
1994 [<see cref="F:Mono.Unix.Native.Errno.ELOOP" />]
1997 <para>An attempt was made to set the sticky bit upon an
1999 [<see cref="F:Mono.Unix.Native.Errno.EFTYPE" />]
2002 <altmember cref="T:Mono.Unix.UnixUserInfo" />
2003 <altmember cref="M:Mono.Unix.Native.Syscall.chown" />
2006 <AssemblyVersion>1.0.5000.0</AssemblyVersion>
2007 <AssemblyVersion>2.0.0.0</AssemblyVersion>
2010 <Member MemberName="SetOwner">
2011 <MemberSignature Language="C#" Value="public void SetOwner (Mono.Unix.UnixUserInfo owner, Mono.Unix.UnixGroupInfo group);" />
2012 <MemberType>Method</MemberType>
2014 <ReturnType>System.Void</ReturnType>
2017 <Parameter Name="owner" Type="Mono.Unix.UnixUserInfo" />
2018 <Parameter Name="group" Type="Mono.Unix.UnixGroupInfo" />
2021 <param name="owner">A <see cref="T:Mono.Unix.UnixUserInfo" /> containing
2022 information about the new owner user. If <see langword="null" />,
2023 the owner user id is unchanged.</param>
2024 <param name="group">A <see cref="T:Mono.Unix.UnixUserInfo" /> containing
2025 information about the new owner group. If <see langword="null" />,
2026 the owner group id is unchanged.</param>
2027 <summary>Set the owner user and owner group of
2028 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
2032 If this is called by the non-super user (usually the <c>root</c>
2034 <see cref="F:Mono.Unix.FileSpecialAttributes.SetUserId" /> and
2035 <see cref="F:Mono.Unix.FileSpecialAttributes.SetGroupId" /> bits
2039 Classes deriving from <see cref="T:Mono.Unix.UnixFileSystemInfo" />
2040 can change this method to operate on a different file. This
2041 default version will follow symbolic links, changing the
2042 permissions of the symbolic link target instead of the symbolic
2044 <see cref="M:Mono.Unix.UnixSymbolicLinkInfo.SetOwner" /> changes
2045 permissions on the symbolic link itself.
2048 This is (almost) equivalent to calling
2049 <see cref="M:Mono.Unix.UnixFileSystemInfo.SetOwner" />(<paramref name="owner" />.UserId,
2050 <paramref name="group" />.GroupId).
2053 <exception cref="T:System.InvalidOperationException">
2054 The effective user ID does not match the owner of the file and the
2055 effective user ID is not the super-user.
2056 [<see cref="F:Mono.Unix.Native.Errno.EPERM" />]
2058 <exception cref="T:System.UnauthorizedAccessException">
2059 <para>Search permission is denied for a component of the path
2060 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
2061 [<see cref="F:Mono.Unix.Native.Errno.EACCES" />]
2064 <exception cref="T:System.IO.DirectoryNotFoundException">
2065 A component of the path prefix of
2066 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is not a
2068 [<see cref="F:Mono.Unix.Native.Errno.ENOTDIR" />]
2070 <exception cref="T:System.IO.FileNotFoundException">
2071 A component of <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
2072 that must exist does not exist.
2073 [<see cref="F:Mono.Unix.Native.Errno.ENOENT" />]
2075 <exception cref="T:System.IO.IOException">
2077 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> resides on a
2078 read-only file system.
2079 [<see cref="F:Mono.Unix.Native.Errno.EROFS" />]
2082 <para>An I/O error occurred while making the directory entry or
2083 allocating the inode.
2084 [<see cref="F:Mono.Unix.Native.Errno.EIO" />]
2087 <exception cref="T:System.IO.PathTooLongException">
2088 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> was too long.
2089 [<see cref="F:Mono.Unix.Native.Errno.ENAMETOOLONG" />]
2091 <exception cref="T:Mono.Unix.UnixIOException">
2092 <para>Too many symbolic links were encountered in translating
2093 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
2094 [<see cref="F:Mono.Unix.Native.Errno.ELOOP" />]
2097 <para>An attempt was made to set the sticky bit upon an
2099 [<see cref="F:Mono.Unix.Native.Errno.EFTYPE" />]
2102 <altmember cref="M:Mono.Unix.Native.Syscall.chown" />
2105 <AssemblyVersion>1.0.5000.0</AssemblyVersion>
2106 <AssemblyVersion>2.0.0.0</AssemblyVersion>
2109 <Member MemberName="SetOwner">
2110 <MemberSignature Language="C#" Value="public virtual void SetOwner (long owner, long group);" />
2111 <MemberType>Method</MemberType>
2113 <ReturnType>System.Void</ReturnType>
2116 <Parameter Name="owner" Type="System.Int64" />
2117 <Parameter Name="group" Type="System.Int64" />
2120 <param name="owner">A <see cref="T:System.Int64" /> containing the user
2121 id of the new owner user. If <c>-1</c>, the owner user id is
2123 <param name="group">A <see cref="T:System.Int64" /> containing the
2124 group id of the new owner group. If <c>-1</c>, the owner group id is
2126 <summary>Set the owner user ID and owner group ID of
2127 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
2131 If this is called by the non-super user (usually the <c>root</c>
2133 <see cref="F:Mono.Unix.FileSpecialAttributes.SetUserId" /> and
2134 <see cref="F:Mono.Unix.FileSpecialAttributes.SetGroupId" /> bits
2138 Classes deriving from <see cref="T:Mono.Unix.UnixFileSystemInfo" />
2139 can change this method to operate on a different file. This
2140 default version will follow symbolic links, changing the
2141 permissions of the symbolic link target instead of the symbolic
2143 <see cref="M:Mono.Unix.UnixSymbolicLinkInfo.SetOwner" /> changes
2144 permissions on the symbolic link itself.
2147 <exception cref="T:System.InvalidOperationException">
2148 The effective user ID does not match the owner of the file and the
2149 effective user ID is not the super-user.
2150 [<see cref="F:Mono.Unix.Native.Errno.EPERM" />]
2152 <exception cref="T:System.UnauthorizedAccessException">
2153 <para>Search permission is denied for a component of the path
2154 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
2155 [<see cref="F:Mono.Unix.Native.Errno.EACCES" />]
2158 <exception cref="T:System.IO.DirectoryNotFoundException">
2159 A component of the path prefix of
2160 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is not a
2162 [<see cref="F:Mono.Unix.Native.Errno.ENOTDIR" />]
2164 <exception cref="T:System.IO.FileNotFoundException">
2165 A component of <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
2166 that must exist does not exist.
2167 [<see cref="F:Mono.Unix.Native.Errno.ENOENT" />]
2169 <exception cref="T:System.IO.IOException">
2171 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> resides on a
2172 read-only file system.
2173 [<see cref="F:Mono.Unix.Native.Errno.EROFS" />]
2176 <para>An I/O error occurred while making the directory entry or
2177 allocating the inode.
2178 [<see cref="F:Mono.Unix.Native.Errno.EIO" />]
2181 <exception cref="T:System.IO.PathTooLongException">
2182 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> was too long.
2183 [<see cref="F:Mono.Unix.Native.Errno.ENAMETOOLONG" />]
2185 <exception cref="T:Mono.Unix.UnixIOException">
2186 <para>Too many symbolic links were encountered in translating
2187 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
2188 [<see cref="F:Mono.Unix.Native.Errno.ELOOP" />]
2191 <para>An attempt was made to set the sticky bit upon an
2193 [<see cref="F:Mono.Unix.Native.Errno.EFTYPE" />]
2196 <altmember cref="M:Mono.Unix.Native.Syscall.chown" />
2199 <AssemblyVersion>1.0.5000.0</AssemblyVersion>
2200 <AssemblyVersion>2.0.0.0</AssemblyVersion>
2203 <Member MemberName="SetOwner">
2204 <MemberSignature Language="C#" Value="public void SetOwner (string owner, string group);" />
2205 <MemberType>Method</MemberType>
2207 <ReturnType>System.Void</ReturnType>
2210 <Parameter Name="owner" Type="System.String" />
2211 <Parameter Name="group" Type="System.String" />
2214 <param name="owner">A <see cref="T:System.String" /> containing the
2215 user name of the owner user id to use.</param>
2216 <param name="group">A <see cref="T:System.String" /> containing the
2217 group name of the owner group id to use.</param>
2218 <summary>Set the owner user ID and owner group ID of
2219 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
2223 If this is called by the non-super user (usually the <c>root</c>
2225 <see cref="F:Mono.Unix.FileSpecialAttributes.SetUserId" /> and
2226 <see cref="F:Mono.Unix.FileSpecialAttributes.SetGroupId" /> bits
2230 Classes deriving from <see cref="T:Mono.Unix.UnixFileSystemInfo" />
2231 can change this method to operate on a different file. This
2232 default version will follow symbolic links, changing the
2233 permissions of the symbolic link target instead of the symbolic
2235 <see cref="M:Mono.Unix.UnixSymbolicLinkInfo.SetOwner" /> changes
2236 permissions on the symbolic link itself.
2239 <exception cref="T:System.InvalidOperationException">
2240 The effective user ID does not match the owner of the file and the
2241 effective user ID is not the super-user.
2242 [<see cref="F:Mono.Unix.Native.Errno.EPERM" />]
2244 <exception cref="T:System.UnauthorizedAccessException">
2245 <para>Search permission is denied for a component of the path
2246 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
2247 [<see cref="F:Mono.Unix.Native.Errno.EACCES" />]
2250 <exception cref="T:System.IO.DirectoryNotFoundException">
2251 A component of the path prefix of
2252 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> is not a
2254 [<see cref="F:Mono.Unix.Native.Errno.ENOTDIR" />]
2256 <exception cref="T:System.IO.FileNotFoundException">
2257 A component of <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />
2258 that must exist does not exist.
2259 [<see cref="F:Mono.Unix.Native.Errno.ENOENT" />]
2261 <exception cref="T:System.IO.IOException">
2263 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> resides on a
2264 read-only file system.
2265 [<see cref="F:Mono.Unix.Native.Errno.EROFS" />]
2268 <para>An I/O error occurred while making the directory entry or
2269 allocating the inode.
2270 [<see cref="F:Mono.Unix.Native.Errno.EIO" />]
2273 <exception cref="T:System.IO.PathTooLongException">
2274 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> was too long.
2275 [<see cref="F:Mono.Unix.Native.Errno.ENAMETOOLONG" />]
2277 <exception cref="T:Mono.Unix.UnixIOException">
2278 <para>Too many symbolic links were encountered in translating
2279 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
2280 [<see cref="F:Mono.Unix.Native.Errno.ELOOP" />]
2283 <para>An attempt was made to set the sticky bit upon an
2285 [<see cref="F:Mono.Unix.Native.Errno.EFTYPE" />]
2288 <altmember cref="T:Mono.Unix.UnixUserInfo" />
2289 <altmember cref="T:Mono.Unix.UnixGroupInfo" />
2290 <altmember cref="M:Mono.Unix.Native.Syscall.chown" />
2293 <AssemblyVersion>1.0.5000.0</AssemblyVersion>
2294 <AssemblyVersion>2.0.0.0</AssemblyVersion>
2297 <Member MemberName="ToStat">
2298 <MemberSignature Language="C#" Value="public Mono.Unix.Native.Stat ToStat ();" />
2299 <MemberType>Method</MemberType>
2301 <ReturnType>Mono.Unix.Native.Stat</ReturnType>
2305 <summary>Converts the instance into a
2306 <see cref="T:Mono.Unix.Native.Stat" /> intance.</summary>
2307 <returns>A <see cref="T:Mono.Unix.Native.Stat" /> which contains
2308 information about <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" />.
2312 <exception cref="T:System.InvalidOperationException">
2313 <see cref="P:Mono.Unix.UnixFileSystemInfo.FullName" /> doesn't exist.
2317 <AssemblyVersion>1.0.5000.0</AssemblyVersion>
2318 <AssemblyVersion>2.0.0.0</AssemblyVersion>
2321 <Member MemberName="ToString">
2322 <MemberSignature Language="C#" Value="public override string ToString ();" />
2323 <MemberType>Method</MemberType>
2325 <ReturnType>System.String</ReturnType>
2329 <summary>To be added.</summary>
2330 <returns>To be added.</returns>
2331 <remarks>To be added.</remarks>
2334 <AssemblyVersion>1.0.5000.0</AssemblyVersion>
2335 <AssemblyVersion>2.0.0.0</AssemblyVersion>