FileSystemInfo Class
Provides the base class for both FileInfo and DirectoryInfo objects.
System.MarshalByRefObject
System.IO.FileSystemInfo
System.IO.DirectoryInfo
System.IO.FileInfo
Assembly: mscorlib (in mscorlib.dll)
The FileSystemInfo type exposes the following members.
| Name | Description | |
|---|---|---|
![]() ![]() | FileSystemInfo() | Initializes a new instance of the FileSystemInfo class. |
![]() | FileSystemInfo(SerializationInfo, StreamingContext) | Initializes a new instance of the FileSystemInfo class with serialized data. |
| Name | Description | |
|---|---|---|
![]() ![]() | Attributes | Gets or sets the attributes for the current file or directory. |
![]() ![]() | CreationTime | Gets or sets the creation time of the current file or directory. |
![]() | CreationTimeUtc | Gets or sets the creation time, in coordinated universal time (UTC), of the current file or directory. |
![]() ![]() | Exists | Gets a value indicating whether the file or directory exists. |
![]() ![]() | Extension | Gets the string representing the extension part of the file. |
![]() ![]() | FullName | Gets the full path of the directory or file. |
![]() ![]() | LastAccessTime | Gets or sets the time the current file or directory was last accessed. |
![]() | LastAccessTimeUtc | Gets or sets the time, in coordinated universal time (UTC), that the current file or directory was last accessed. |
![]() ![]() | LastWriteTime | Gets or sets the time when the current file or directory was last written to. |
![]() | LastWriteTimeUtc | Gets or sets the time, in coordinated universal time (UTC), when the current file or directory was last written to. |
![]() ![]() | Name | For files, gets the name of the file. For directories, gets the name of the last directory in the hierarchy if a hierarchy exists. Otherwise, the Name property gets the name of the directory. |
| Name | Description | |
|---|---|---|
![]() | CreateObjRef | Creates an object that contains all the relevant information required to generate a proxy used to communicate with a remote object. (Inherited from MarshalByRefObject.) |
![]() ![]() | Delete | Deletes a file or directory. |
![]() ![]() | Equals(Object) | Determines whether the specified Object is equal to the current Object. (Inherited from Object.) |
![]() ![]() | Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) |
![]() ![]() | GetHashCode | Serves as a hash function for a particular type. (Inherited from Object.) |
![]() | GetLifetimeService | Retrieves the current lifetime service object that controls the lifetime policy for this instance. (Inherited from MarshalByRefObject.) |
![]() | GetObjectData | Sets the SerializationInfo object with the file name and additional exception information. |
![]() ![]() | GetType | Gets the Type of the current instance. (Inherited from Object.) |
![]() | InitializeLifetimeService | Obtains a lifetime service object to control the lifetime policy for this instance. (Inherited from MarshalByRefObject.) |
![]() ![]() | MemberwiseClone() | Creates a shallow copy of the current Object. (Inherited from Object.) |
![]() | MemberwiseClone(Boolean) | Creates a shallow copy of the current MarshalByRefObject object. (Inherited from MarshalByRefObject.) |
![]() ![]() | Refresh | Refreshes the state of the object. |
![]() ![]() | ToString | Returns a string that represents the current object. (Inherited from Object.) |
| Name | Description | |
|---|---|---|
![]() ![]() | FullPath | Represents the fully qualified path of the directory or file. |
![]() ![]() | OriginalPath | The path originally specified by the user, whether relative or absolute. |
The FileSystemInfo class contains methods that are common to file and directory manipulation. A FileSystemInfo object can represent either a file or a directory, thus serving as the basis for FileInfo or DirectoryInfo objects. Use this base class when parsing a lot of files and directories.
A derived class can inherit from FileSystemInfo only if the derived class has the AllAccess permission from the FileIOPermissionAccess enumeration.
In members that accept a path, the path can refer to a file or just a directory. The specified path can also refer to a relative path or a Universal Naming Convention (UNC) path for a server and share name. For example, all the following are acceptable paths:
"c:\\MyDir\\MyFile.txt" in C#, or "c:\MyDir\MyFile.txt" in Visual Basic.
"c:\\MyDir" in C#, or "c:\MyDir" in Visual Basic.
"MyDir\\MySubdir" in C#, or "MyDir\MySubDir" in Visual Basic.
"\\\\MyServer\\MyShare" in C#, or "\\MyServer\MyShare" in Visual Basic.
For a list of common I/O tasks, see Common I/O Tasks.
The following example shows how to loop through all the files and directories, querying some information about each entry.
using System; using System.IO; namespace ConsoleApplication2 { class Program { static void Main(string[] args) { // Loop through all the immediate subdirectories of C. foreach (string entry in Directory.GetDirectories(@"C:\")) { DisplayFileSystemInfoAttributes(new DirectoryInfo(entry)); } // Loop through all the files in C. foreach (string entry in Directory.GetFiles(@"C:\")) { DisplayFileSystemInfoAttributes(new FileInfo(entry)); } } static void DisplayFileSystemInfoAttributes(FileSystemInfo fsi) { // Assume that this entry is a file. string entryType = "File"; // Determine if entry is really a directory if ((fsi.Attributes & FileAttributes.Directory) == FileAttributes.Directory ) { entryType = "Directory"; } // Show this entry's type, name, and creation date. Console.WriteLine("{0} entry {1} was created on {2:D}", entryType, fsi.FullName, fsi.CreationTime); } } } // Output will vary based on contents of drive C. // Directory entry C:\Documents and Settings was created on Tuesday, November 25, 2003 // Directory entry C:\Inetpub was created on Monday, January 12, 2004 // Directory entry C:\Program Files was created on Tuesday, November 25, 2003 // Directory entry C:\RECYCLER was created on Tuesday, November 25, 2003 // Directory entry C:\System Volume Information was created on Tuesday, November 2, 2003 // Directory entry C:\WINDOWS was created on Tuesday, November 25, 2003 // File entry C:\IO.SYS was created on Tuesday, November 25, 2003 // File entry C:\MSDOS.SYS was created on Tuesday, November 25, 2003 // File entry C:\pagefile.sys was created on Saturday, December 27, 2003
- FileIOPermission
for permission to inherit from this class. Associated enumeration: Unrestricted
Security Action: Inheritance Demand
Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
