EDUCBA

EDUCBA

MENUMENU
  • Free Tutorials
  • Free Courses
  • Certification Courses
  • 600+ Courses All in One Bundle
  • Login

C# File.Exists

By Priya PedamkarPriya Pedamkar

Home » Software Development » Software Development Tutorials » C# Tutorial » C# File.Exists

C# File Exists

Introduction to C# File.Exists

In C#, File.Exists() method comes under System.IO namespace. It is used to check whether a file exists at the specified location or not. The following are some important points regarding File.Exists() method in C#:

  • This method takes a string (path of the file) as input.
  • It returns a Boolean value; returns true if the user has required permission to read the file and the file exists at the specified location else returns false.
  • It also returns false if the path is null or if it is not valid or if its length is zero.

Syntax:

Start Your Free Software Development Course

Web development, programming languages, Software testing & others

The syntax for File.Exists() method in C# is as follows:

if(File.Exists(file_path))
{
//user code
}

In the above syntax, we have used File.Exists() method with an ‘if’ statement. Here, File is a class that contains the Exists() method. The File.Exists() method takes ‘file_path’ which is the path of the file as input to check if the file exists or not.

If the file exists then the corresponding user code will be executed.

How File.Exists() Method Works in C#?

To work with File.Exists() method, we first need to import System.IO namespace in our code. This method takes a string as an input which is the path of the file to be checked for existence. This method returns true if the file exists at the specified path and if the user has permission to read the file. If the file exists but the user does not have required permission to read the file then an exception will not be thrown but the method will return false. Apart from this, the method returns false if the input string (path of the file) is null or if its length is zero. The user should check that the path of the file is valid such as it is not empty, it does not only contain white spaces, it does not contain any invalid characters, the path of the file or file name is not too long, etc. If the path of the file is not valid then the method will return false.

We can check for the validity of the path by calling Path.GetInvalidPathChars() method which returns an array of characters that are not allowed in the pathname. Along with this, we can also create a regex (regular expression) to check for the validity of the path. While a user calls File.Exists() method on a file it is possible that at the same time another operation can be performed on the same file such as Delete operation. Thus, a user needs to be aware of this possibility. To File.Exists() method, the user is allowed to pass absolute or relative path information as input. The path specified as a relative path will be interpreted as relative to the current working directory. File.Exists() method works only for a file. If a user passes the path of the directory to the method then it will return false. The method removes trailing spaces if any from the path of the file before checking for the existence of the file.

Popular Course in this category
C# Training Program (6 Courses, 17 Projects)6 Online Courses | 17 Hands-on Project | 89+ Hours | Verifiable Certificate of Completion | Lifetime Access
4.6 (8,847 ratings)
Course Price

View Course

Related Courses
ASP.NET Training (8 Courses, 19 Projects).NET Training Program (4 Courses, 19 Projects)

Examples of File.Exists in C#

Example to check if the file exists in the current directory or not. If it exists the code will open the file to read its content else it will show a message that file does not exist in this directory.

Example #1

Code:

using System;
using System.IO;
namespace ConsoleApp4
{
public class Program
{
public static void Main()
{
string filePath = "Text.txt";
string fileContent = string.Empty;
try
{
//checking if file exists in the current directory
if (File.Exists(filePath))
{
//opening text file and reading the whole content
using (TextReader tr = File.OpenText(filePath))
{
fileContent = tr.ReadToEnd();
Console.WriteLine(fileContent);
}
}
else
{
Console.WriteLine(filePath + " file does not exist in the current "+
"directory.");
}
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.ReadLine();
}
}
}

Output:

C# File Exists-1.1

Example #2

Example to check if a file exists at the specified directory by writing the file path in two different ways as shown below:

  • The first way is to prefix the ‘@’ symbol to the file path. This requires a single ‘\’ backslash in the file path.
  • The other way is to provide two backslashes ‘\\’ in the file path.

Code:

using System;
using System.IO;
namespace ConsoleApp4
{
public class Program
{
public static void Main()
{
string filePath1 = @"D:\Content\FileExists.txt";
string filePath2 = "D:\\Content\\FileExists.txt";
string fileContent = string.Empty;
try
{
//checking if file exists in the specified directory
if (File.Exists(filePath1))
{
Console.WriteLine("Reading file content using first way of " +
"writing file path");
//opening text file and reading the whole content
using (TextReader tr = File.OpenText(filePath1))
{
fileContent = tr.ReadToEnd();
Console.WriteLine(fileContent);
}
}
else
{
Console.WriteLine(filePath1 + " file does not exist in " +
"the specified directory.");
}
if (File.Exists(filePath2))
{
Console.WriteLine("\nReading file content using second way of " +
"writing file path");
fileContent = string.Empty;
//opening text file and reading the whole content
using (TextReader tr = File.OpenText(filePath2))
{
fileContent = tr.ReadToEnd();
Console.WriteLine(fileContent);
}
}
else
{
Console.WriteLine(filePath2 + " file does not exist in " +
"the specified directory.");
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.ReadLine();
}
}
}

Output:

C# File Exists-1.2

Example #3

Example showing File.Exists() method working with the ‘null’ file path.

Code:

using System;
using System.IO;
namespace ConsoleApp4
{
public class Program
{
public static void Main()
{
//taking file path as 'null'
string filePath = null;
string fileContent = string.Empty;
try
{
//checking if file exists
if (File.Exists(filePath))
{
//opening text file and reading the whole content
using (TextReader tr = File.OpenText(filePath))
{
fileContent = tr.ReadToEnd();
Console.WriteLine(fileContent);
}
}
else
{
Console.WriteLine(filePath + " file does not exist.");
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
Console.ReadLine();
}
}
}

Output:

file doesnt exist

In the above example, File.Exists() method returned false because the file path is ‘null’.

Conclusion

  • Exists() method in C# is used in file handling. It is used to check if a file exists or not.
  • This method takes the path of the file as input.
  • The method returns ‘true’ if the file exists at the specified path else it returns ‘false’.

Recommended Articles

This is a guide to C# File Exists. Here we discuss the introduction and how file.exists() method works in C# along with different examples and its code implementation. You may also look at the following articles to learn more –

  1. Trim() in C#
  2. this Keyword in C#
  3. C# StreamWriter
  4. DataReader C#

C# Training Program (6 Courses, 17 Projects)

6 Online Courses

17 Hands-on Project

89+ Hours

Verifiable Certificate of Completion

Lifetime Access

Learn More

0 Shares
Share
Tweet
Share
Primary Sidebar
C sharp Tutorial
  • Advanced
    • Inheritance in C#
    • Exception Handling in C#
    • Types of Exception in C#
    • C# FileNotFoundException
    • C# NullReferenceException
    • C# OutOfMemoryException
    • C# StackOverflowException
    • Custom Exception in C#
    • What is Multithreading in C#
    • C# finally
    • C# System.IO
    • What is StringBuilder in C#
    • DataReader C#
    • BinaryWriter in C#
    • C# BinaryReader
    • TextWriter in C#
    • TextReader in C#
    • C# StringReader
    • C# StringWriter
    • C# StreamReader
    • C# StreamWriter
    • C# FileInfo
    • What is Design Pattern in C#?
    • Multithreading in C#
    • Sorting in C#
    • Bubble Sort in C#
    • C# SortedList
    • C# SortedSet
    • C# SortedDictionary
    • Abstract Class in C#
    • Access Modifiers in C#
    • C# Generics
    • Deserialization in C#
    • C# Thread
    • C# Thread Join
    • C# Thread Sleep
    • C# Thread Synchronization
    • C# Class
    • Sealed in C#
    • Sealed Class in C#
    • Polymorphism in C#
    • C# Call By Reference
    • Virtual Keyword in C# 
    • Yield Keyword in C#
    • Regular Expression in C#
    • C# Lambda Expression
    • C# Predicate
    • Convert Object to JSON C#
    • Checkbox in C#
    • C# MessageBox
    • Collections in C#
    • List in C#
    • C# LinkedList
    • Listbox in C#
    • Protected in C#
    • C# EventHandler
    • Private in C#
    • this Keyword in C#
    • Static Keyword in C#
    • C# Out Parameter
    • Assert in C#
    • C# Delegates
    • C# Interface
    • Generics in C#
    • Timer in C#
    • C# Serialization
    • Metadata in C#
    • C# Stack
    • C# Using Static
    • Queue in C#
    • C# File.Exists
    • C# Tuples
    • C# Create JSON Object
    • Partial in C#
    • C# readonly
    • C# Action Delegate
    • C# Await Async
    • C# Dictionary
    • IEnumerable C#
    • C# Data Grid View
    • C# Dynamic
    • Web Services in C#
    • C# Pattern Matching
    • C# Extension Methods
    • C# XmlSerializer
  • Basic
    • Uses Of C#
    • C# Versions
    • C# Data Types
    • Variables in C#
    • Namespaces in C#
    • C# Compilers
    • C# Keywords
    • Iterators in C#
    • Objects in C#
    • C# Object Dispose
    • C# object to XML
    • C# check object type
    • C# Object Serialization
    • Pointers in C#
    • C# Literals
    • C# Commands
    • C# Custom Attribute
    • Type Casting in C#
    • String vs String C#
    • C# Struct vs Class
  • Operators
    • Logical Operators in C#
    • Conditional Operators in C#
    • Bitwise Operators in C#
    • C# OR Operator
    • C# Ternary Operators
    • Operator Precedence in C#
  • Control Statement
    • C# if Statement
    • Else If in C#
    • Continue in C#
    • Break in C#
    • Switch Statement in C#
    • Goto Statement in C#
  • Loops
    • C# For Loop
    • C# While Loop
    • C# do-while loop
    • C# foreach Loop
  • Arrays
    • Arrays in C#
    • 2D Arrays in C#
    • C# Jagged Arrays
    • String Array in C#
    • C# Multidimensional Arrays
  • Constructor and Destructor
    • Constructor in C#
    • Copy Constructor in C#
    • Static Constructor in C#
    • Destructor in C#
  • overloading and overrideing
    • Overloading and Overriding in C#
    • Overloading in C#
    • Overriding in C#
    • Method Overloading in C#
    • Method Overriding in C#
    • Operator Overloading in C#
  • Functions
    • C# Functions
    • C# String Functions
    • Math Functions in C#
    • Recursive Function in C#
    • C# Anonymous Functions
    • C# Local Functions
    • Enum in C#
    • Trim() in C#
    • clone() in C#
    • C# random
    • C# String Format()
    • C# String Interpolation
    • C# StartsWith()
    • C# String IndexOf()
    • DateTime in C#
    • C# Nullable
    • C# nameof
    • C# checked
    • C# String PadLeft
    • Convert String to Double in C#
    • Convert int to String C#
    • String to Date C#
    • C# intern()
    • C# Stopwatch
    • C# DirectoryInfo
    • C# Compare()
    • C# Base
    • C# SOAP
    • Lock in C#
  • Programs
    • Patterns in C#
    • Swapping in C#
    • Palindrome in C#
    • Factorial in C#
    • Fibonacci Series in C#
    • Random Number Generator in C#
    • Prime Numbers in C#
    • Armstrong Number in C#
    • Reverse String in C#
  • Interview questions
    • C# Interview Questions and Answers
    • C# OOP Interview Questions
    • C# Design Pattern Interview Questions

Related Courses

C# Certification Training

ASP.NET Course

.NET Course

Footer
About Us
  • Blog
  • Who is EDUCBA?
  • Sign Up
  • Corporate Training
  • Certificate from Top Institutions
  • Contact Us
  • Verifiable Certificate
  • Reviews
  • Terms and Conditions
  • Privacy Policy
  •  
Apps
  • iPhone & iPad
  • Android
Resources
  • Free Courses
  • Java Tutorials
  • Python Tutorials
  • All Tutorials
Certification Courses
  • All Courses
  • Software Development Course - All in One Bundle
  • Become a Python Developer
  • Java Course
  • Become a Selenium Automation Tester
  • Become an IoT Developer
  • ASP.NET Course
  • VB.NET Course
  • PHP Course

© 2020 - EDUCBA. ALL RIGHTS RESERVED. THE CERTIFICATION NAMES ARE THE TRADEMARKS OF THEIR RESPECTIVE OWNERS.

EDUCBA Login

Forgot Password?

EDUCBA
Free Software Development Course

Web development, programming languages, Software testing & others

*Please provide your correct email id. Login details for this Free course will be emailed to you
Book Your One Instructor : One Learner Free Class

Let’s Get Started

This website or its third-party tools use cookies, which are necessary to its functioning and required to achieve the purposes illustrated in the cookie policy. By closing this banner, scrolling this page, clicking a link or continuing to browse otherwise, you agree to our Privacy Policy

EDUCBA

*Please provide your correct email id. Login details for this Free course will be emailed to you
EDUCBA
Free Software Development Course

Web development, programming languages, Software testing & others

*Please provide your correct email id. Login details for this Free course will be emailed to you

Special Offer - C# Training Program (6 Courses, 17 Projects) Learn More