lib/core/tools/Read-IcingaFileContent.psm1
<# .SYNOPSIS Reads content of a file in read-only mode, ensuring no data corruption is happening .DESCRIPTION Reads content of a file in read-only mode, ensuring no data corruption is happening .FUNCTIONALITY Reads content of a file in read-only mode, ensuring no data corruption is happening .EXAMPLE PS>Read-IcingaFileContent -File 'config.json'; .OUTPUTS System.Object .LINK https://github.com/Icinga/icinga-powershell-framework #> function Read-IcingaFileContent() { param ( [string]$File ); if ((Test-Path $File) -eq $FALSE) { return $null; } [System.IO.FileStream]$FileStream = [System.IO.File]::Open( $File, [System.IO.FileMode]::Open, [System.IO.FileAccess]::Read, [System.IO.FileShare]::Read ); $ReadArray = New-Object Byte[] $FileStream.Length; $UTF8Encoding = New-Object System.Text.UTF8Encoding $TRUE; $FileContent = ''; while ($FileStream.Read($ReadArray, 0 , $ReadArray.Length)) { $FileContent = [System.String]::Concat($FileContent, $UTF8Encoding.GetString($ReadArray)); } $FileStream.Dispose(); return $FileContent; } |