luizcarlosfaria
4/8/2016 - 5:31 PM

Gerar arquivo base64 do diretório atual e seus filhos

Gerar arquivo base64 do diretório atual e seus filhos

$currentDirectory = [System.IO.Path]::GetDirectoryName($myInvocation.MyCommand.Definition)
Write-host $currentDirectory
$fileNames = [System.IO.Directory]::GetFiles($currentDirectory, "*.*", [System.IO.SearchOption]::AllDirectories)

$unsupportedExtensions = ".ps1", ".base64"

function IsValidFile{
     param([string]$fileName)

    $returnValue = $true
     
    foreach ($unsupportedExtension in $unsupportedExtensions) 
    {
        $isMatch = $fileName.ToLowerInvariant().EndsWith($unsupportedExtension)
        if($isMatch){
            return $false
        }	    
    }
    return $true
}


function GenerateBase64OfFile{
    param([string]$fileName, [string]$extensionToAdd)
    $base64Result = [Convert]::ToBase64String((get-content $fileName -encoding byte))
    [System.String] $extension = [System.IO.Path]::GetExtension($fileName) -replace '\.',""
    

    [System.IO.File]::WriteAllText("$fileName$extensionToAdd", "data:image/$extension;base64,$base64Result")
    return $base64Result
}





foreach ($fileName in $fileNames) {
    if( IsValidFile ($fileName) -eq $true )
    {
        $hash = GenerateBase64OfFile  $fileName ".base64"
        Write-host $fileName
    }
    
 }
 Write-host "#############################################################"
 Write-host "Finalizado Com Sucesso!!!! "
 Write-host "#############################################################"