ScholarQuill logoScholarQuillUniversity Notes
  • Notes
  • Past Papers
  • Blogs
  • Todo
Login
ScholarQuill logoScholarQuillUniversity Notes
Login
NotesPast PapersBlogsTodo
More
SubjectsDiscussionCGPA CalculatorGPA CalculatorStudent PortalCourse Outline
About
About usPrivacy PolicyReportContact
Notes
Past Papers
Blogs
Todo
Analytics
    Current Subject
    🧩
    Advanced Programming
    CSI-415
    Progress0 / 55 topics
    Topics
    1. Visual Programming Basics2. Introduction to Events3. Fundamentals of Event-Driven Programming4. Message Handling5. User Interfaces6. Graphics Device Interface7. Painting and Drawing8. Windows Management9. Input Devices10. Resources11. String and Menu Resource12. Dialogs and Windows Controls13. Common Controls14. Dynamic Link Libraries (DLLs)15. Threads and Synchronization16. Network Programming17. Building Class Libraries at the Command Line18. Class Libraries19. Using References20. Assemblies21. Private Assembly Deployment22. Shared Assembly Deployment23. Configuration Overview24. Configuration Files25. Programmatic Access to Configuration26. Using SDK Tools for Signing and Deployment27. Metadata28. Reflection29. Late Binding30. Directories and Files31. Serialization32. Attributes33. Memory Management and Garbage Collection34. Threading and Synchronization35. Asynchronous Delegates36. Application Domains37. Marshal by Value38. Marshal by Reference39. Authentication and Authorization40. Configuring Security41. Code Access Security42. Code Groups43. Evidence44. Permissions45. Role-Based Security46. Principals and Identities47. Using Data Readers48. Using Data Sets49. Interacting with XML Data50. Tracing Event Logs51. Using the Boolean Switch and Trace Switch Classes52. Print Debugging Information with the Debug Class53. Instrumenting Release Builds with the Trace Class54. Using Listeners55. Implementing Custom Listeners
    CSI-415›Directories and Files
    Advanced ProgrammingTopic 30 of 55

    Directories and Files

    7 minread
    1,130words
    Intermediatelevel

    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 load past papers

    Click on Show Past Papers to see past papers.
    On This Page
      Reading Stats
      Est. reading time7 min
      Word count1,130
      Code examples0
      DifficultyIntermediate