DevAcademia
C++C#CPythonJava
  • C# Basics

  • C# Introduction
  • C# Get Started
  • C# Syntax
  • C# Output
  • C# Comments
  • C# Variables
  • C# Data Types
  • C# Type Casting
  • C# User Input
  • C# Operators
  • C# Math
  • C# Strings
  • C# Booleans
  • C# If...Else
  • C# Switch Statement
  • C# While Loop
  • C# For Loop
  • C# Break and Continue
  • C# Arrays
  • C# Files
  • C# OOP

  • C# OOP Introduction
  • C# Classes and Objects
  • C# Class Members
  • C# Constructors
  • C# Destructors
  • C# Access Modifiers
  • C# Properties
  • C# Inheritance
  • C# Polymorphism
  • C# Abstraction
  • C# Interfaces
  • C# Enums
  • C# Exceptions
  • C# Quizzes

  • C# Quiz Introduction
  • C# Basics

  • C# Introduction
  • C# Get Started
  • C# Syntax
  • C# Output
  • C# Comments
  • C# Variables
  • C# Data Types
  • C# Type Casting
  • C# User Input
  • C# Operators
  • C# Math
  • C# Strings
  • C# Booleans
  • C# If...Else
  • C# Switch Statement
  • C# While Loop
  • C# For Loop
  • C# Break and Continue
  • C# Arrays
  • C# Files
  • C# OOP

  • C# OOP Introduction
  • C# Classes and Objects
  • C# Class Members
  • C# Constructors
  • C# Destructors
  • C# Access Modifiers
  • C# Properties
  • C# Inheritance
  • C# Polymorphism
  • C# Abstraction
  • C# Interfaces
  • C# Enums
  • C# Exceptions
  • C# Quizzes

  • C# Quiz Introduction

Loading Cs tutorial…

Loading content
C# BasicsTopic 38 of 55
←PreviousPrevNextNext→

C# Files - Complete Guide

Introduction to File Handling

File handling in C# allows you to work with files and directories using the System.IO namespace. It includes classes like File, FileInfo, Directory, DirectoryInfo, StreamReader, and StreamWriter.

You can create, read, write, append, copy, move, and delete files, as well as manage directories. Both synchronous and asynchronous methods are supported for efficient file I/O.

File Operations Examples

Here are examples of common file operations in C#:

Example
using System;
using System.IO;

namespace FilesExample
{
    class Program
    {
        static void Main(string[] args)
        {
            string filePath = "sample.txt";

            Console.WriteLine("=== File Writing ===");
            File.WriteAllText(filePath, "Hello, File World!\nThis is a sample text file.");
            Console.WriteLine("File created and text written");

            File.AppendAllText(filePath, "\nThis line was appended.");
            Console.WriteLine("Text appended to file");

            string[] lines = { "Line 1", "Line 2", "Line 3" };
            File.WriteAllLines("lines.txt", lines);
            Console.WriteLine("Multiple lines written to file");

            Console.WriteLine("\n=== File Reading ===");
            string content = File.ReadAllText(filePath);
            Console.WriteLine("File content:\n" + content);

            string[] fileLines = File.ReadAllLines(filePath);
            Console.WriteLine("\nFile lines:");
            for (int i = 0; i < fileLines.Length; i++)
            {
                Console.WriteLine($"Line {i + 1}: {fileLines[i]}");
            }

            Console.WriteLine("\n=== File Information ===");
            FileInfo fileInfo = new FileInfo(filePath);
            Console.WriteLine($"File name: {fileInfo.Name}");
            Console.WriteLine($"File size: {fileInfo.Length} bytes");
            Console.WriteLine($"Creation time: {fileInfo.CreationTime}");

            Console.WriteLine("\n=== File Operations ===");
            Console.WriteLine($"File exists: {File.Exists(filePath)}");

            File.Copy(filePath, "sample_copy.txt", true);
            Console.WriteLine("File copied");

            File.Move("sample_copy.txt", "renamed_sample.txt");
            Console.WriteLine("File renamed");

            Console.WriteLine("\n=== Stream Writing/Reading ===");
            using (StreamWriter writer = new StreamWriter("stream_file.txt"))
            {
                writer.WriteLine("Line 1 from StreamWriter");
                writer.WriteLine("Line 2 from StreamWriter");
            }
            Console.WriteLine("Stream writing completed");

            using (StreamReader reader = new StreamReader("stream_file.txt"))
            {
                string line;
                Console.WriteLine("\nStream reading:");
                while ((line = reader.ReadLine()) != null)
                {
                    Console.WriteLine(line);
                }
            }

            Console.WriteLine("\n=== Binary File Operations ===");
            using (BinaryWriter binWriter = new BinaryWriter(File.Open("binary.dat", FileMode.Create)))
            {
                binWriter.Write(123);
                binWriter.Write(45.67);
                binWriter.Write("Hello Binary");
            }
            Console.WriteLine("Binary file written");

            using (BinaryReader binReader = new BinaryReader(File.Open("binary.dat", FileMode.Open)))
            {
                int intValue = binReader.ReadInt32();
                double doubleValue = binReader.ReadDouble();
                string stringValue = binReader.ReadString();

                Console.WriteLine($"Int: {intValue}, Double: {doubleValue}, String: {stringValue}");
            }

            Console.WriteLine("\n=== Cleanup ===");
            File.Delete(filePath);
            File.Delete("lines.txt");
            File.Delete("renamed_sample.txt");
            File.Delete("stream_file.txt");
            File.Delete("binary.dat");
            Console.WriteLine("Cleanup completed");
        }
    }
}
Output
=== File Writing ===
File created and text written
Text appended to file
Multiple lines written to file

=== File Reading ===
File content:
Hello, File World!
This is a sample text file.
This line was appended.

File lines:
Line 1: Hello, File World!
Line 2: This is a sample text file.
Line 3: This line was appended.

=== File Information ===
File name: sample.txt
File size: 69 bytes
Creation time: [Current Date Time]

=== File Operations ===
File exists: True
File copied
File renamed

=== Stream Writing/Reading ===
Stream writing completed

Stream reading:
Line 1 from StreamWriter
Line 2 from StreamWriter

=== Binary File Operations ===
Binary file written
Int: 123, Double: 45.67, String: Hello Binary

=== Cleanup ===
Cleanup completed
Test your knowledge: C# Files - Complete Guide
Quiz Configuration
4 of 8 questions
Sequential
Previous allowed
Review enabled
Early close allowed
Estimated time: 5 min
C# BasicsTopic 38 of 55
←PreviousPrevNextNext→