Do you want to know how to check if a file exists in PowerShell? In this PowerShell tutorial, I have explained different methods of checking if a file exists in PowerShell.
To check if a file exists in PowerShell, you can use the Test-Path cmdlet, which returns $true if the file is present and $false otherwise. For example, if (Test-Path "C:\path\to\file.txt") { Write-Host "File exists." } else { Write-Host "File does not exist." }. This is a reliable and straightforward method to verify file existence within your scripts.
Check if a File Exists in PowerShell Using Test-Path Cmdlet
The best and most used method to check if a file exists in PowerShell is by using the Test-Path cmdlet. This cmdlet is specifically designed to determine whether a path, which could be a file or a directory, exists. It returns $true if the path exists and $false otherwise.
Here is a basic example of using Test-Path in PowerShell to check if the file exists.
$filePath = "C:\Bijay\Questions.txt"
if (Test-Path $filePath) {
Write-Host "The file exists."
} else {
Write-Host "The file does not exist."
}This script sets a file path to a variable and then checks if the file exists using Test-Path. Depending on the result, it will output a corresponding message.
After executing the PowerShell script using VS code, you can see the output in the screenshot below:

Checking for Different Types of Paths
Test-Path can be used to check for various types of paths by using its parameters. For example, you can specify to check only for containers (directories) or leaves (files):
# Check if a directory exists
$directoryPath = "C:\path\to\your\directory"
if (Test-Path $directoryPath -PathType Container) {
Write-Host "The directory exists."
} else {
Write-Host "The directory does not exist."
}
# Check if a file exists
$filePath = "C:\path\to\your\file.txt"
if (Test-Path $filePath -PathType Leaf) {
Write-Host "The file exists."
} else {
Write-Host "The file does not exist."
}Using Test-Path with Wildcards
Test-Path in PowerShell also supports wildcard characters, which can be useful when you want to check for the existence of files that match a certain pattern:
$files = Test-Path "C:\Bijay\*.txt"
if ($files) {
Write-Host "One or more .txt files exist."
} else {
Write-Host "No .txt files exist."
}This example checks for any .txt files in the specified directory. Here is the output in the screenshot below after I executed the above PowerShell script.

Check if a File Exists in PowerShell Using .NET Method
Another way to check if a file exists in PowerShell is by using the .NET System.IO.File class and its Exists method. This is a more .NET-centric approach and can be useful if you are already working with other .NET classes in your script.
Here is how you can use the Exists method:
$filePath = "C:\Bijay\Questions.txt"
if ([System.IO.File]::Exists($filePath)) {
Write-Host "The file exists."
} else {
Write-Host "The file does not exist."
}This script directly calls the static Exists method from the System.IO.File class to check if the file exists.
Error Handling
When working with files, it’s also important to consider error handling. PowerShell provides a try-catch block that can be used to handle exceptions that occur when performing file operations.
Here’s an example of using try-catch with a file existence check:
$filePath = "C:\path\to\your\file.txt"
try {
if (Test-Path $filePath) {
# Perform some operation with the file
} else {
throw "File does not exist."
}
} catch {
Write-Host "An error occurred: $_"
}In this script, an exception is thrown if the file does not exist, and the catch block catches it and outputs an error message.
Conclusion
Checking if a file exists in PowerShell can be possible by using Test-Path or the .NET System.IO.File class methods. Now, I hope you got a complete idea of how to check if a file exists in PowerShell using different methods.
You may also like:
- How to Read JSON File into Array in PowerShell?
- How To Write Array To File In PowerShell?
- How to Download File from URL in PowerShell?
- How to Read a File Line by Line in PowerShell?
Bijay Kumar is an esteemed author and the mind behind PowerShellFAQs.com, where he shares his extensive knowledge and expertise in PowerShell, with a particular focus on SharePoint projects. Recognized for his contributions to the tech community, Bijay has been honored with the prestigious Microsoft MVP award. With over 15 years of experience in the software industry, he has a rich professional background, having worked with industry giants such as HP and TCS. His insights and guidance have made him a respected figure in the world of software development and administration. Read more.