private/Find-ObjectFile.ps1
|
function Find-ObjectFile { param([string]$BucketPath, [string]$Key) if ([string]::IsNullOrWhiteSpace($Key) -or -not [System.IO.Directory]::Exists($BucketPath)) { return $null } $di = [System.IO.DirectoryInfo]::new($BucketPath) $target = $Key.ToLowerInvariant() $hasWildcard = $target -match '[\*\?]' foreach ($f in @($di.GetFiles("*.json")) + @($di.GetFiles("*.dat"))) { $baseLower = [System.IO.Path]::GetFileNameWithoutExtension($f.Name).ToLowerInvariant() if ($hasWildcard) { if ($baseLower -like $target) { return $f } } elseif ($baseLower -eq $target) { return $f } } return $null } |