Method TryDelete
- Namespace
- IOInfoExtensions
- Assembly
- IOInfoExtensions.dll
TryDelete(FileInfo)
Deletes the file if it exists.
public static void TryDelete(this FileInfo file)
Remarks
Attempts to delete the file. If the file or it's parent directory do not exist, no exception is thrown.
System.IO.FileInfo
has a Delete method, but it throws an exception if the parent directory does not exist.
Parameters
file
FileInfo- The
FileInfo
object to be deleted.
Examples
Example 1
Called on an existing file.
var file = new FileInfo("C:\\Demo\\ChildFile1.txt");
Console.WriteLine("File Information:");
Console.WriteLine(GetFileTable(new[] { file }, includeDirectory: true));
Console.WriteLine("Deleting file...");
file.TryDelete();
Console.WriteLine("File Information after delete:");
Console.WriteLine(GetFileTable(new[] { file }, includeDirectory: true));
/*
File Information:
Directory Name DirectoryExists Exists
--------- ---- --------------- ------
C:\Demo ChildFile1.txt True True
Deleting file...
File Information after delete:
Directory Name DirectoryExists Exists
--------- ---- --------------- ------
C:\Demo ChildFile1.txt True False
*/
$file = New-Object System.IO.FileInfo 'C:\Demo\ChildFile1.txt'
Write-Host "File Information:"
Write-Host (Get-FileTable -Files $file -IncludeDirectory)
Write-Host "Deleting file..."
$file.TryDelete()
Write-Host "File Information after delete:"
Write-Host (Get-FileTable -Files $file -IncludeDirectory)
<#
Output:
File Information:
Directory Name DirectoryExists Exists
--------- ---- --------------- ------
C:\Demo ChildFile1.txt True True
Deleting file...
File Information after delete:
Directory Name DirectoryExists Exists
--------- ---- --------------- ------
C:\Demo ChildFile1.txt True False
#>
Example 2
Called on a non-existing file but parent directory does exist.
var file = new FileInfo("C:\\Demo\\ChildFile4.txt");
Console.WriteLine("File Information:");
Console.WriteLine(GetFileTable(new[] { file }, includeDirectory: true));
Console.WriteLine("Deleting file...");
file.TryDelete();
Console.WriteLine("File Information after delete:");
Console.WriteLine(GetFileTable(new[] { file }, includeDirectory: true));
/*
File Information:
Directory Name DirectoryExists Exists
--------- ---- --------------- ------
C:\Demo ChildFile4.txt True False
Deleting file...
File Information after delete:
Directory Name DirectoryExists Exists
--------- ---- --------------- ------
C:\Demo ChildFile4.txt True False
*/
$file = New-Object System.IO.FileInfo 'C:\Demo\ChildFile4.txt'
Write-Host "File Information:"
Write-Host (Get-FileTable -Files $file -IncludeDirectory)
Write-Host "Deleting file..."
$file.TryDelete()
Write-Host "File Information after delete:"
Write-Host (Get-FileTable -Files $file -IncludeDirectory)
<#
Output:
File Information:
Directory Name DirectoryExists Exists
--------- ---- --------------- ------
C:\Demo ChildFile4.txt True False
Deleting file...
File Information after delete:
Directory Name DirectoryExists Exists
--------- ---- --------------- ------
C:\Demo ChildFile4.txt True False
#>
Example 3
Called on a non-existing file and parent directory does not exist.
var file = new FileInfo("C:\\Demo\\ChildDir4\\ChildFile4.txt");
Console.WriteLine("File Information:");
Console.WriteLine(GetFileTable(new[] { file }, includeDirectory: true));
Console.WriteLine("Deleting file...");
file.TryDelete();
Console.WriteLine("File Information after delete:");
Console.WriteLine(GetFileTable(new[] { file }, includeDirectory: true));
/*
File Information:
Directory Name DirectoryExists Exists
--------- ---- --------------- ------
C:\Demo\ChildDir4 ChildFile4.txt False False
Deleting file...
File Information after delete:
Directory Name DirectoryExists Exists
--------- ---- --------------- ------
C:\Demo\ChildDir4 ChildFile4.txt False False
*/
$file = New-Object System.IO.FileInfo 'C:\Demo\ChildDir4\ChildFile4.txt'
Write-Host "File Information:"
Write-Host (Get-FileTable -Files $file -IncludeDirectory)
Write-Host "Deleting file..."
$file.TryDelete()
Write-Host "File Information after delete:"
Write-Host (Get-FileTable -Files $file -IncludeDirectory)
<#
Output:
File Information:
Directory Name DirectoryExists Exists
--------- ---- --------------- ------
C:\Demo\ChildDir4 ChildFile4.txt False False
Deleting file...
File Information after delete:
Directory Name DirectoryExists Exists
--------- ---- --------------- ------
C:\Demo\ChildDir4 ChildFile4.txt False False
#>