Example input
$Path = ".\README.md"
$Path = $env:UserProfileRequire all paths to exist, by stopping at every error
$ErrorActionPreference = [Management.Automation.ActionPreference]::StopString
Get path of existing file or folder
[String] $fileOrFolder = $Path -replace '[\\/]$', '' | Convert-PathFake path of file or folder
[String] $file = $Path | foreach {
    $ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath($_)
}[String] $folder = $Path -replace '[\\/]$', '' | foreach {
    $ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath($_)
}Filesystem Information Object
Files and folders contain FullName, Extension, Name, Exists, CreationTime, CreationTimeUtc, LastAccessTime, LastAccessTimeUtc, LastWriteTime, LastWriteTimeUtc, Attributes.
Files also contain Length, DirectoryName, Directory, IsReadOnly.
Folders also contain Parent, Root.
Retrieve information of existing file or folder
[IO.FileInfo] $visibleFile = $Path | Get-Item[IO.DirectoryInfo] $visibleFolder = $Path -replace '[\\/]$', '' | Get-Item[IO.FileSystemInfo] $visibleFileOrFolder = $Path -replace '[\\/]$', '' | Get-Item[IO.FileInfo] $anyFile = $Path | Get-Item -Force[IO.DirectoryInfo] $anyFolder = $Path -replace '[\\/]$', '' | Get-Item -Force[IO.FileSystemInfo] $anyFileOrFolder = $Path -replace '[\\/]$', '' | Get-Item -ForceRetrieve information of existing file or folder
or fake information of non-existing file or folder
[IO.FileInfo] $file = $Path | foreach {
    $ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath($_)
} | foreach { 
    [IO.FileInfo]::new($_)
}[IO.DirectoryInfo] $folder = $Path -replace '[\\/]$', '' | foreach {
    $ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath($_)
} | foreach { 
    [IO.DirectoryInfo]::new($_)
}Resolve path for existing files or folders
Resolve-Path $fileResolve path files and folders that might not exist
$ExecutionContext.SessionState.Path.GetUnresolvedProviderPathFromPSPath($file)