In .NET, managing files and directories is a common task, whether for reading, writing, creating, or deleting files and directories. The System.IO namespace provides a comprehensive set of classes for working with files and directories, making it easier to handle various file operations in your applications. This namespace includes classes like File, Directory, FileInfo, DirectoryInfo, and others that help you perform file and directory operations.
File Operations:
Directory Operations:
The File class provides static methods to perform operations on files like creating, reading, writing, and deleting.
You can create or overwrite a file using methods like File.WriteAllText, File.WriteAllLines, or File.Create.
using System;
using System.IO;
class Program
{
static void Main()
{
string filePath = "example.txt";
// Create or overwrite the file and write a string to it
File.WriteAllText(filePath, "Hello, this is a test file.");
Console.WriteLine("File created and text written.");
}
}
using System;
using System.IO;
class Program
{
static void Main()
{
string[] lines = { "First line", "Second line", "Third line" };
string filePath = "lines.txt";
// Create or overwrite the file and write multiple lines
File.WriteAllLines(filePath, lines);
Console.WriteLine("File created with multiple lines.");
}
}
You can read the content of a file using methods like File.ReadAllText or File.ReadAllLines.
using System;
using System.IO;
class Program
{
static void Main()
{
string filePath = "example.txt";
// Read the entire file content
string content = File.ReadAllText(filePath);
Console.WriteLine("File Content:\n" + content);
}
}
using System;
using System.IO;
class Program
{
static void Main()
{
string filePath = "lines.txt";
// Read all lines into an array
string[] lines = File.ReadAllLines(filePath);
foreach (var line in lines)
{
Console.WriteLine(line);
}
}
}
using System;
using System.IO;
class Program
{
static void Main()
{
string sourceFilePath = "example.txt";
string destinationFilePath = "example_copy.txt";
// Copy the file to a new location
File.Copy(sourceFilePath, destinationFilePath, overwrite: true);
Console.WriteLine("File copied.");
}
}
using System;
using System.IO;
class Program
{
static void Main()
{
string sourceFilePath = "example.txt";
string destinationFilePath = "new_location/example.txt";
// Move the file to a new location
File.Move(sourceFilePath, destinationFilePath);
Console.WriteLine("File moved.");
}
}
using System;
using System.IO;
class Program
{
static void Main()
{
string filePath = "example.txt";
// Delete the file
if (File.Exists(filePath))
{
File.Delete(filePath);
Console.WriteLine("File deleted.");
}
else
{
Console.WriteLine("File does not exist.");
}
}
}
The Directory class provides static methods to perform operations on directories such as creating, deleting, and listing files.
using System;
using System.IO;
class Program
{
static void Main()
{
string directoryPath = "my_folder";
// Create a new directory
if (!Directory.Exists(directoryPath))
{
Directory.CreateDirectory(directoryPath);
Console.WriteLine("Directory created.");
}
else
{
Console.WriteLine("Directory already exists.");
}
}
}
using System;
using System.IO;
class Program
{
static void Main()
{
string directoryPath = "my_folder";
// Delete the directory
if (Directory.Exists(directoryPath))
{
Directory.Delete(directoryPath, recursive: true);
Console.WriteLine("Directory deleted.");
}
else
{
Console.WriteLine("Directory does not exist.");
}
}
}
You can list the files in a directory using Directory.GetFiles, Directory.GetDirectories, or Directory.GetFileSystemEntries.
using System;
using System.IO;
class Program
{
static void Main()
{
string directoryPath = "my_folder";
// Get all files in the directory
string[] files = Directory.GetFiles(directoryPath);
foreach (var file in files)
{
Console.WriteLine(file);
}
}
}
You can check if a directory or file exists using Directory.Exists or File.Exists.
using System;
using System.IO;
class Program
{
static void Main()
{
string filePath = "example.txt";
string directoryPath = "my_folder";
// Check if file exists
if (File.Exists(filePath))
{
Console.WriteLine("File exists.");
}
else
{
Console.WriteLine("File does not exist.");
}
// Check if directory exists
if (Directory.Exists(directoryPath))
{
Console.WriteLine("Directory exists.");
}
else
{
Console.WriteLine("Directory does not exist.");
}
}
}
FileInfo and DirectoryInfo classes allow you to perform operations and retrieve metadata about files and directories. Unlike the static File and Directory classes, these are instance-based, meaning you need to create an object representing the file or directory before using them.
using System;
using System.IO;
class Program
{
static void Main()
{
string filePath = "example.txt";
FileInfo fileInfo = new FileInfo(filePath);
// Get file properties
Console.WriteLine($"File Name: {fileInfo.Name}");
Console.WriteLine($"File Extension: {fileInfo.Extension}");
Console.WriteLine($"File Size: {fileInfo.Length} bytes");
Console.WriteLine($"Creation Time: {fileInfo.CreationTime}");
}
}
using System;
using System.IO;
class Program
{
static void Main()
{
string directoryPath = "my_folder";
DirectoryInfo directoryInfo = new DirectoryInfo(directoryPath);
// Get directory properties
Console.WriteLine($"Directory Name: {directoryInfo.Name}");
Console.WriteLine($"Creation Time: {directoryInfo.CreationTime}");
// List files in the directory
FileInfo[] files = directoryInfo.GetFiles();
foreach (var file in files)
{
Console.WriteLine(file.Name);
}
}
}
The Path class provides methods to manipulate string paths and perform common tasks like combining paths, getting file extensions, and more.
using System;
using System.IO;
class Program
{
static void Main()
{
string filePath = "folder/..//subfolder/example.txt";
// Normalize the path by removing extra slashes
string normalizedPath = Path.GetFullPath(filePath);
Console.WriteLine("Normalized Path: " + normalizedPath);
// Get file extension
string extension = Path.GetExtension(filePath);
Console.WriteLine("File Extension: " + extension);
}
}
System.IO namespace provides various classes to handle files and directories, such as File, Directory, FileInfo, and DirectoryInfo.FileInfo and DirectoryInfo provide more detailedOpen this section to load past papers