ScholarQuill logoScholarQuillUniversity Notes
My Semester
Explore Notes
Past Papers12 New
Video CoursesNew
Search
Settings
Study Tools
GPA/CGPA Calculator
Schedule & To-Do
Student Portal
Contact
Contact
ScholarQuill logo
My Semester
Explore Notes
Past Papers12 New
Video CoursesNew
Search
Settings
GPA/CGPA Calculator
Schedule & To-Do
Student Portal
Contact
ScholarQuill logoScholarQuillUniversity Notes
Study PortalCSI-415Directories Files
Ctrl + K
Login
Explore
Search
Semester
Papers
CGPA
    CSI-415

    Advanced Programming

    Progress0 / 55 done
    Topics55
    1Visual Programming Basics2Introduction to Events3Fundamentals of Event-Driven Programming4Message Handling5User Interfaces6Graphics Device Interface7Painting and Drawing8Windows Management9Input Devices10Resources11String and Menu Resource12Dialogs and Windows Controls13Common Controls14Dynamic Link Libraries (DLLs)15Threads and Synchronization16Network Programming17Building Class Libraries at the Command Line18Class Libraries19Using References20Assemblies21Private Assembly Deployment22Shared Assembly Deployment23Configuration Overview24Configuration Files25Programmatic Access to Configuration26Using SDK Tools for Signing and Deployment27Metadata28Reflection29Late Binding30Directories and Files31Serialization32Attributes33Memory Management and Garbage Collection34Threading and Synchronization35Asynchronous Delegates36Application Domains37Marshal by Value38Marshal by Reference39Authentication and Authorization40Configuring Security41Code Access Security42Code Groups43Evidence44Permissions45Role-Based Security46Principals and Identities47Using Data Readers48Using Data Sets49Interacting with XML Data50Tracing Event Logs51Using the Boolean Switch and Trace Switch Classes52Print Debugging Information with the Debug Class53Instrumenting Release Builds with the Trace Class54Using Listeners55Implementing Custom Listeners
    7 min read
    Topic 30 of 55
    Topic Study Note Illustration
    30

    Directories and Files

    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...

    Directories and Files in .NET

    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.

    Key Concepts

    • Files: Files are data containers on a storage medium. They can contain any type of data (text, images, videos, etc.).
    • Directories: Directories (or folders) are containers for organizing files. They are used to structure and group files.

    Common File and Directory Operations

    1. File Operations:

      • Creating, opening, reading, writing, deleting files.
      • Copying, moving files.
      • Checking file properties (size, attributes, creation time, etc.).
    2. Directory Operations:

      • Creating, deleting, and renaming directories.
      • Listing files in a directory.
      • Checking directory properties (existence, attributes).

    1. Working with Files

    The File class provides static methods to perform operations on files like creating, reading, writing, and deleting.

    A. Creating and Writing to Files

    You can create or overwrite a file using methods like File.WriteAllText, File.WriteAllLines, or File.Create.

    • Creating and Writing Text to a File:
    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.");
        }
    }
    
    • Writing Multiple Lines to a File:
    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.");
        }
    }
    

    B. Reading from Files

    You can read the content of a file using methods like File.ReadAllText or File.ReadAllLines.

    • Reading Entire File Content:
    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);
        }
    }
    
    • Reading All Lines from a File:
    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);
            }
        }
    }
    

    C. File Copying and Moving

    • Copying a File:
    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.");
        }
    }
    
    • Moving a File:
    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.");
        }
    }
    

    D. Deleting Files

    • Deleting a File:
    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.");
            }
        }
    }
    

    2. Working with Directories

    The Directory class provides static methods to perform operations on directories such as creating, deleting, and listing files.

    A. Creating and Deleting Directories

    • Creating a Directory:
    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.");
            }
        }
    }
    
    • Deleting a Directory:
    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.");
            }
        }
    }
    

    B. Listing Files in a Directory

    You can list the files in a directory using Directory.GetFiles, Directory.GetDirectories, or Directory.GetFileSystemEntries.

    • Listing Files in a Directory:
    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);
            }
        }
    }
    

    C. Checking Directory or File Existence

    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.");
            }
        }
    }
    

    3. File and Directory Information (FileInfo, DirectoryInfo)

    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.

    A. FileInfo Example

    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}");
        }
    }
    

    B. DirectoryInfo Example

    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);
            }
        }
    }
    

    4. Path Class

    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);
        }
    }
    

    5. Summary

    • The System.IO namespace provides various classes to handle files and directories, such as File, Directory, FileInfo, and DirectoryInfo.
    • You can perform operations like creating, reading, writing, deleting, copying, and moving files and directories.
    • FileInfo and DirectoryInfo provide more detailed
    ← Previous topic 29
    Late Binding
    Next topic 31 →
    Serialization

    Past Papers

    Open this section to view and download past papers

    Click on Show Past Papers to load available exam papers.

    Reading Progress
    0%
    7mremaining
    1.1kwords
    Intermediatelevel
    On This Page

    No headings found

    Study Toolkit

    Subject Portal

    Advanced Programming