C# Tutorial

C# Tutorial C# First Application C# Variables C# Data Types C# Operators C# Keywords

C# Control Statement

C# If Statements C# Switch Statements C# for Loop C# While Loop C# do While loop C# Jump Statements C# Function C# functions with out variable

C# Arrays

C# Arrays

C# Function

C# Function call by value C# Call by reference C# Passing array to function C# Multidimensional Arrays C# Jagged Arrays C# Params C# Array Class C# Command Line Arguments

C# Object Class

C# Object and Classes C# Constructors C# Destructor C# this Keyword C# static field C# static class C# Static Constructor C# Structs C# enum C# Properties

C# Inheritance

C# Inheritance C# Multilevel Inheritance C# Aggregation C# Member overloading C# Method Overriding C# Base

C# Polymorphism

C# Polymorphism C# Sealed

C# Abstraction

C# Abstraction C# Interface

C# Namespace

C# Namespace C# Access Modifiers C# Encapsulation

C# Strings

C# String

C# Misc

C# Design Patterns Dictionary in C# Boxing and Unboxing in C# Ref and Out in C# Serialization in C# Dispose and Finalize in C# CONSOLE LOG IN C# Get File extension in C# Insert query in c# Difference Between List and Dictionary in C# Getters and Setters in C# Extension Methods in C# Insert query in c# CONSOLE LOG IN C# Get File extension in C# Random.NextDouble() Method in C# Binary Search in C# Difference between Delegates and Interfaces in C# Double.IsFinite() Method in C# Index Constructor in C# Abstraction in C# Basic OOPS Concepts In C# Queue.CopyTo() Method in C# single.compareto() method in C# C# Throw Exception in Constructor DECODE IN C# file.setlastwritetimeutc() method in C# Convert Object to List in C# convert.ToSByte(string, IFormatProvider) Method in C# C# Declare Delegate in Interface console.TreatControl C As Input property in C# Copying the queue elements to 1-D Array in C# Array.Constrainedcopy() Method in C# C# in and out Char.IsLetterOrDigit() method in C# Debugging in C# decimal.compare() method in C# Difference between Console.Read and Console.Readline in C# Metadata in C# C# Event Handler Example Default Interface Methods in C# Difference between hashtable and dictionary in C# C# program to implement IDisposable Interface Encapsulation in C# SortedList.IndexOfVaalue(Object) Method in C# Hash Maps in C# How to clear text files in C# How to Convert xls to xlsx in C# Foreach loop in C# FIFO in C# How to handle null exception in C# Type.Is Instance Of Type() Method in C# How to add data into MySQL database using C# How to use angular js in ASP net Csharp decimal.compare() method in Csharp Difference between Console.Read and Console.Readline in Csharp How to Implement Interface in Csharp char.IsUpper() Method in C# Index Of Any() Method in C# Quantifiers in C# C# program to Get Extension of a Given File C# Error Logging C# ENCRIPTION Can we create an object for Abstract Class in C# Console.CursorVisible in C# SortedDictionary Implementation in C# C# Hash Table with Examples Setting the Location of the Label in c# Collections in c# Virtual Keyword in C# Reverse of string in C# String and StringBuilder in C# Encapsulation in C# SortedList.IndexOfVaalue(Object) Method in C# Hash Maps in C# How to clear text files in C# How to Convert xls to xlsx in C# Foreach loop in C# FIFO in C# How to handle null exception in C# Type.Is Instance Of Type() Method in C# How to add data into MySQL database using C# How to use angular js in ASP net Csharp decimal.compare() method in Csharp Difference between Console.Read and Console.Readline in Csharp How to Implement Interface in Csharp char.IsUpper() Method in C# Index Of Any() Method in C# Quantifiers in C# C# program to Get Extension of a Given File Difference between ref and out in C# Singleton Class in C# Const And Readonly In Csharp BinaryReader and BinaryWriter in C# C# Attributes C# Delegates DirectoryInfo Class in C# Export and Import Excel Data in C# File Class in C# FileInfo Class in C# How to Cancel Parallel Operations in C#? Maximum Degree of Parallelism in C# Parallel Foreach Loop in C# Parallel Invoke in C# StreamReader and StreamWriter in C# TextReader and TextWriter in C# AsQueryable() in C# Basic Database Operations Using C# C# Anonymous Methods C# Events C# Generics C# Indexers C# Multidimensional Indexers C# Multithreading C# New Features C# Overloading of Indexers Difference between delegates and events in C# Operator overloading in C# Filter table in C# C# Queue with Examples C# Sortedlist With Examples C# Stack with Examples C# Unsafe Code File Handling in C# HashSet in C# with Examples List Implementation in C# SortedSet in C# with Examples C# in Depth Delegates and Events in C# Finally Block in C# How to Split String in C# Loggers in C# Nullable Types in C# REVERSE A STRING IN C# TYPE CASTING IN C# What is Generics in C# ABSTRACT CLASS IN C# Application of pointer in C# Await in c# READONLY AND CONSTANT IN C# Type safe in C# Types of Variables in c# Use of delegates in c# ABSTRACT CLASS IN C# Application of pointer in C# Await in c# READONLY AND CONSTANT IN C# Type safe in C# Types of Variables in c# Use of delegates in c# ABSTRACT CLASS IN C# Application of pointer in C# Await in c# READONLY AND CONSTANT IN C# Type safe in C# Types of Variables in c# Use of delegates in c# Atomic Methods Thread Safety and Race Conditions in C# Parallel LINQ in C# Design Principles in C# Difference Between Struct And Class In C# Difference between Abstraction and Encapsulation in C# Escape Sequence Characters in C# What is IOC in C# Multiple Catch blocks in C# Appdomain in C# Call back methods in C# Change Datetime format in C# Declare String array in C# Default Access Specifier in c# Foreach in LINQ C# How to compare two lists in C# How to Convert String to Datetime in c# How to get only Date from DateTime in C# Ispostback in asp net C# JSON OBJECT IN C# JSON STRINGIFY IN C# LAMBDA FUNCTION IN C# LINQ Lambda Expression in C# Microservices in C# MSIL IN C# Reference parameter in C# Shadowing(Method hiding) in C# Solid principles in C# Static Members in C# Task run in C# Transaction scope in C# Type Conversion in c# Unit of Work in C# Unit Test Cases in c# User Defined Exception in c# Using Keyword in C# Var Keyword in C# What is gac in C#

FileInfo Class in C#

A System.IO namespace in C# contains the FileInfo class, which provides information about and manipulates files. It represents a single file on the file system and gives you access to several properties and operations.

  • FileInfo class in C# is used to manages and get data abouts files on the file system. It’s a member of the System.IO namespace.
  •  It represents a single file and offers several methods and properties that help to interact with it.

For example, you may read and write the file's content, verify its attributes, and carry out operations on the file, including copying, moving, and deleting.

Methods:

MethodsDescription
OpenRead()You can read the file's contents using the method, which opens the file in read-only mode and returns a FileStream object.
OpenWrite()It can write data to the file using the FileStream object returned by the method, which opens the file in write mode.
OpenText()  Opens the specified file for text reading and provides a StreamReader object that makes it easier to read text from the specified file.
CopyTo(string destFileName)The current file is copied to the destination path using the method.
MoveTo(string destFileName)The current file is transferred to the destination path using the method.
Delete()The method deletes the file that the FileInfo object is referring to.

The FileInfo class can be used with these methods to interface with and manipulate files. These methods provide important functionality for managing files within your C# program, whether working with file contents, copying, moving, or deleting files.

  • The FileStream class's Open function simplifies the process of starting a file opening by giving users the option to select a specific mode for the file action, decide on the access level (read, write, or both), and indicate the level of sharing that is authorized among other FileStream objects.
  • A FileStream instance is created as a result of calling this function. The mode, access attributes, and sharing choices provided are reflected in this file instance.
  • The operation's intended file mode (such as Open or Append) is specified by the mode argument.
  • Whether the file should be accessible for reading, writing, or both depends on the access option.
  • The share argument controls the type of access that other FileStream objects may have to the same file.

Properties:

  1. Name: Retrieves the file's name.
  2. FullName: Gets the files whole path using FullName.
  3. Directory: Retrieves a DirectoryInfo object that represents the file's parent directory.
  4. Exists: Gets a boolean value indicating whether the file exists or not.
  5. Length: Retrieves the file's length in bytes.
  6. CreationTime: Returns or sets the file's creation time.
  7. Last written: Gets or sets the most recent time the file was written.
  8. Attributes: Gets or modifies a file's attributes, such as read-only, hidden, etc.

Example:

using System;

using System.IO;

class Program

{

    static void Main()

    {

        string filePath = @"C:\myfolder\newfile.txt"; // Specify the desired file path

        // Create a FileInfo object

        FileInfo fileInfo = new FileInfo(filePath);

        try

        {

            // Check if the file already exists

            if (!fileInfo.Exists)

            {

                // Create the file using the Create method

                using (FileStream fs = file info.Create())

                {

                    // You can perform any necessary operations using the FileStream fs

                    Console.WriteLine("File created successfully.");

                }

            }

            else

            {

                Console.WriteLine("File already exists.");

            }

        }

        Catch (Exception ex)

        {

            Console.WriteLine($"An error occurred: {ex.Message}");

        }

    }

}

Output:

FileInfo Class in C#
  • The required file path is in a brand-new FileInfo object. The Exists property of the FileInfo object is then used to determine whether the file is present.
  • We create the file using the Create() method if it doesn't already exist.
  • When we finish the FileStream, the using statement ensures that it is appropriately disposed of.

Remember to substitute the desired location and filename where you wish to create the new file for "C:myfoldernewfile.txt."

Example:

In C#, you can copy an existing file to a different location and optionally give it a new name by using the CopyTo() function of the FileInfo class.

The CopyTo() method can be used as shown below:

using System;

using System.IO;

class Program2

{

    static void Main()

    {

        string sourceFilePath = @"C:\myfolder\source.txt"; // Specify the path of the source file

        string destinationFilePath = @"C:\myfolder\destination.txt"; // Specify the path of the destination file

        // Create FileInfo objects for source and destination files

        FileInfo sourceFileInfo = new FileInfo(sourceFilePath);

        FileInfo destinationFileInfo = new FileInfo(destinationFilePath);

        try

        {

            // Check if the source file exists

            if (source file info. Exists)

            {

                // Copy the source file to the destination using the CopyTo method

                FileInfo copiedFileInfo = sourceFileInfo.CopyTo(destination file path, true);

                Console.WriteLine("File copied successfully to the destination.");

            }

            else

            {

                Console.WriteLine("Source file does not exist.");

            }

        }

        Catch (Exception ex)

        {

            Console.WriteLine($"An error occurred: {ex.Message}");

        }

    }

}

Output:

FileInfo Class in C#
  • Two FileInfo objects are being created in this example, one for the source and one for the destination files.
  • We utilize the CopyTo() function on the source FileInfo object to copy the file to the designated destination.
  •  If the destination file already exists, the CopyTo() method's second argument truly permits overwriting.
  • In "C:myfoldersource.txt" and "C:myfolderdestination.txt," replace "C:myfoldersource.txt" with the source file's path and the destination file's location and name, respectively.

Example:

A program to delete a file

using System;

using System.IO;

class Program

{

    static void Main()

    {

        string filePath = @"C:\myfolder\Some.txt"; // Specify the file path to delete

        // Create a FileInfo object

        FileInfo fileInfo = new FileInfo(filePath);

        try

        {

            // Check if the file exists

            if (file info. Exists)

            {

                // Delete the file using the Delete method

                fileInfo.Delete();

                Console.WriteLine("File deleted successfully.");

            }

            else

            {

                Console.WriteLine("File not found.");

            }

        }

        Catch (Exception ex)

        {

            Console.WriteLine($"An error occurred: {ex.Message}");

        }

    }

}

Output:

FileInfo Class in C#

Using the given filePath, you build a FileInfo object with the name fileInfo.The Exists property of the fileInfo object determines whether the file is present within a try block.

  • Change "C:myfolderfileToDelete.txt" in this program to the real location of the file you wish to remove.
  • The Delete method of the FileInfo class will be used by the program when it is run to try and delete the specified file.
  • The program shows the notification “File deleted successfully.” after removing the file from the particular folder. The program enters the else block and shows the message "File not found." if the file does not exist.
  • Any exceptions that arise throughout the process such as file locks, permissions problems, etc.. are caught by the program in the catch block, and an error message that includes the exception's message to be displayed.

Example:

This program demonstrates how to deal with files using different FileInfo class methods and properties:

using System;

using System.IO;

using System.Security.AccessControl;

class Program

{

    static void Main()

    {

        string filePath = @"C:\myfolder\sample.txt"; // Specify the file path

        // Create a FileInfo object

        FileInfo fileInfo = new FileInfo(filePath);

        try

        {

            // Check if the file exists

            if (!fileInfo.Exists)

            {

                // Create the file using the CreateText method and write some content

                using (StreamWriter writer = fileInfo.CreateText())

                {

                    writer.WriteLine("Hello, FileInfo!");

                }

            }

            // Copy the file to a new location

            string destination path = @"C:\myfolder\backup\sample_backup.txt";

            fileInfo.CopyTo(destination path, true);

            // Move the file to a different location

            string newFilePath = @"C:\myfolder\newlocation\sample.txt";

            fileInfo.MoveTo(newFilePath);

            // Get file access control

            FileSecurity fileSecurity = fileInfo.GetAccessControl();

            // Display the file path

            Console.WriteLine("File path: " + fileInfo.FullName);

            // Display file size

            Console.WriteLine("File size: " + fileInfo.Length + " bytes");

            // Display file creation time

            Console.WriteLine("Creation time: " + fileInfo.CreationTime);

            // Display file last write time

            Console.WriteLine("Last write time: " + fileInfo.LastWriteTime);

            // Display file attributes

            Console.WriteLine("Attributes: " + fileInfo.Attributes);

            // Display file access control details

            Console.WriteLine("Access control: " + file security);

            Console.WriteLine("Program executed successfully.");

        }

        catch (Exception ex)

        {

            Console.WriteLine($"An error occurred: {ex.Message}");

        }

    }

}

Output:

FileInfo Class in C#
  • For the given filePath, a FileInfo object is created. It utilizes the CreateText method for creating the file and write some content into it if it doesn't already exist it not creates.
  • The CopyTo method is where used to show how to copy the file to a backup location.
  • The MoveTo method uses the program to relocate the file for to a new location.
  • Using the GetAccessControl method, it retrieves the access control settings.
  • The program displays information about there file, including the file's path, size, creation and last write times, properties, and access control settings.
  • These actions automatically catch and presents any exceptions as error messages.

Please be aware that depending on the actual execution environment and the paths you supply in the program, the values of file paths, timestamps, and characteristics will change. The output will show the data obtained through the program's use of FileInfo methods and properties.

s