System.IO Namespace
The System.IO namespace provides types that allow reading and writing to files and data streams, and types that provide basic file and directory support.
Overview
Classes in this namespace are designed for handling file system operations, such as creating, copying, deleting, moving, and opening files, as well as reading and writing to data streams.
Key Classes
| Class | Description |
|---|---|
| File | Static methods for creation, copying, deletion, moving, and opening of files. |
| Directory | Static methods for creating, moving, and enumerating through directories and subdirectories. |
| Path | Provides methods for manipulating string paths. |
| FileStream | Provides a Stream for a file, supporting synchronous and asynchronous read/write. |
| StreamReader | Conveniently reads characters from a byte stream in a particular encoding. |
| StreamWriter | Conveniently writes characters to a stream in a particular encoding. |
| BinaryReader | Reads primitive data types as binary values. |
| BinaryWriter | Writes primitive data types as binary values. |
| MemoryStream | Creates a stream whose backing store is memory. |
| Enumerations | Common enums such as FileAttributes and SeekOrigin. |
Examples
// Read all text from a file
string text = System.IO.File.ReadAllText("example.txt");
// Write lines to a file
string[] lines = { "First", "Second", "Third" };
System.IO.File.WriteAllLines("output.txt", lines);
// Enumerate files in a directory
foreach (var file in System.IO.Directory.EnumerateFiles("./data"))
{
Console.WriteLine(file);
}