Method PSTryDelete
- Namespace
- IOInfoExtensions.PowerShell
- Assembly
- IOInfoExtensions.PowerShell.dll
PSTryDelete(PSObject)
PowerShell wrapper for the FileInfo.TryDelete method.
public static object PSTryDelete(PSObject 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
PSObject- The
FileInfo
object to be deleted.
Returns
- object
- N/A
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
#>