This documentation is archived and is not being maintained.

FileSystemInfo Class

Provides the base class for both FileInfo and DirectoryInfo objects.

Namespace:  System.IO
Assembly:  mscorlib (in mscorlib.dll)

'Declaration
<SerializableAttribute> _
<ComVisibleAttribute(True)> _
<FileIOPermissionAttribute(SecurityAction.InheritanceDemand, Unrestricted := True)> _
Public MustInherit Class FileSystemInfo _
	Inherits MarshalByRefObject _
	Implements ISerializable
'Usage
Dim instance As FileSystemInfo

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.

When first called, FileSystemInfo calls Refresh and returns the cached information on APIs to get attributes and so on. On subsequent calls, you must call Refresh to get the latest copy of the information.

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.

Imports System.IO
Module Module1

    Sub Main()
        ' Loop through all the immediate subdirectories of C. 
        For Each entry As String In Directory.GetDirectories("C:\")
            DisplayFileSystemInfoAttributes(New DirectoryInfo(entry))
        Next 

        ' Loop through all the files in C. 
        For Each entry As String In Directory.GetFiles("C:\")
            DisplayFileSystemInfoAttributes(New FileInfo(entry))
        Next 
    End Sub 

    Sub DisplayFileSystemInfoAttributes(ByVal fsi As IO.FileSystemInfo)
        ' Assume that this entry is a file. 
        Dim entryType As String = "File" 

        ' Determine if this entry is really a directory. 
        If (fsi.Attributes And FileAttributes.Directory) = FileAttributes.Directory Then
            entryType = "Directory" 
        End If 

        ' Show this entry's type, name, and creation date.
        Console.WriteLine("{0} entry {1} was created on {2:D}", _
            entryType, fsi.FullName, fsi.CreationTime)
    End Sub 
End Module 

' 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

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC, Xbox 360, Zune

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Supported in: 3.5, 2.0, 1.0

XNA Framework

Supported in: 3.0, 2.0, 1.0
Show: