Private/Get-FileType.ps1

function Get-FileType {
    [OutputType([System.String])]
    [CmdletBinding(SupportsShouldProcess = $false)]
    param (
        [Parameter(Mandatory = $true, Position = 0)]
        [ValidateNotNullOrEmpty()]
        [ValidateScript({ -not [System.String]::IsNullOrWhiteSpace($_) })]
        [System.String] $File
    )

    $ParsedUri = $null
    if ([System.Uri]::TryCreate($File, [System.UriKind]::Absolute, [ref]$ParsedUri) -and $ParsedUri.Scheme -in @("http", "https")) {
        $File = $ParsedUri.AbsolutePath
    }

    $FileName = [System.IO.Path]::GetFileName($File)
    if ($FileName.StartsWith(".") -and $FileName.IndexOf(".", 1) -lt 0) {
        $Extension = ""
    }
    else {
        $Extension = [System.IO.Path]::GetExtension($File).TrimStart(".")
    }

    Write-Verbose -Message "$($MyInvocation.MyCommand): found extension: [$Extension]"
    Write-Output -InputObject $Extension
}