Introduction to C# System.IO
C# System.IO is a namespace that stands for Input and output. In other words, we can say that C# takes input from the user and then performs the appropriate action to generate the output. i.e. C# System.IO simply processes the input and generates the output. C# System.IO namespace consists of various classes, delegates, structures, and enumerations. These classes are used to write or read the data from files and data streams.
In this tutorial, to understand the C# namespace in detail, we are going to discuss its classes, delegates, structures, and enumerations.
C# System.IO Classes
Below is the list of various classes supported by C# System.IO namespace
- BinaryReader: This class is used to read the primitive data types in binary format.
- BinaryWriter: This class is used to write the primitive data types in binary format to streams.
- File: This class provides various methods to be performed on file like create, delete, copy, rename, move, etc.
- FileInfo: This class is used to provide information about the file like properties and methods for creating, deleting, copying, and opening files.
- FileFormatException: This class is used to handle the format exception.
- FileNotFoundException: This class is used to handle the not found exception.
- FileLoadException: This class is used to handle the load exception.
- FileSystemInfo: This class is used to show information about the system by providing a base class for FileInfo and DirectoryInfo objects.
- FileStream: This class provides a stream for the file. It supports both synchronous and asynchronous read write operations.
- FileSystemEventArgs: This class is used to provide the data for directory events.
- FileSystemWatcher: This class is used to raise the event when changes in the file or directory occur.
- Directory: This is a sealed class that represents a static method for creating, enumerating, and deleting through a directory and their subdirectories.
- DirectoryInfo: This is a sealed class that represents instance methods for creating, enumerating, and deleting through a directory and their subdirectories.
- DirectoryNotFoundException: This class is used to raise an exception when a file or directory cannot be found.
- DriveInfo: This class is used to access the drive information.
- DriveNotFoundException: This class is used to raise the exception when the drive cannot ve found.
- BufferedStream: This is a sealed class used to add buffering in read and write operations.
- EndOfStreamException: This class is used to raise the exception when the end of the stream cannot be found.
- IOException: This class is used to raise the exception when the input/output error occurred.
- InvalidDataException: This class is used to raise the exception when valid data cannot be found.
- InternalBufferOverflowException: This class is used to handle internal buffer overflow exception.
- MemoryStream: This class is used to create a stream whose backing store is memory.
- Stream: This is an abstract class used to provide a stream of bytes.
- StreamReader: This class is used to read the character from bye stream by inheriting the TextReader class.
- TextReader: This class is used to read the characters sequentially.
- TextWriter: This class is used to the writer the character in a sequential manner.
- StringReader: This class is used to read the data from string by inheriting the TextReader class.
- StringWriter: This class is used to write the data to a string by inheriting the TextWriter class.
- Path: This class is used to operate on a string that contains the path information about files or directories.
- PipeException: This class is used to hand the exception related to a pipe.
- PathTooLongException: This class is used to raise the exception when the path of a file or directory is too long.
- UnmanagedMemoryStream: This class is used to access the unmanaged blocks of memory from managed code
- UnmanagedMemoryAccessor: This class is used to provide random access to the unmanaged blocks of memory from managed code.
Delegates and Structures
Below is the list of delegates and Structures supported by C# System.IO namespace.
C# System.IO Delegates
- ErrorEventHandler: It is used to define a method that controls the error event created by the FileSystemWatcher object.
- RenamedEventHandler: It is used to define a method that controls the renamed event created by the FileSyatemWather class.
- FileSystemEventHandler: It is used to define a method that controls created, changed, or deleted events create by the FileStreamWatcher class.
C# System.IO Structures
- WaitForChangedResult: It is used to show the details on the changes that occurred in the file.
C# System.IO Enumeration
Below is the list of various enumeration supported by C# System.IO namespace
- FileAccess: It is used to declare the constant to restrict the file access like read, write, open, etc
- FileMode: It is used to define the file mode, i.e. how the operating system will open the specific file.
- FileOptions: It is used to represent various options to create the object for FileStream.
- FileAttributes: It is used to provide attributes for file and their directories.
- FileShare: It is used to control the kind of access other file stream objects can have to the same file.
- SearchOption: It enables the search options to search the current directory and subdirectories.
- DriveType: It is used to declare the constants for drive types such as network, CDRom, etc.
- HandleInheritability: It is used to specify whether the child process can inherit an underlying handle.
- SeekOrigin
- NotifyFilters: It is used to notify the changes to a file or folder.
Recommended Articles
This is a guide to C# System.IO. Here we also discuss the Introduction and various enumeration and delegates classes supported by the C# system. You may also have a look at the following articles to learn more –