param ( [Parameter(Mandatory = $true)] [string]$Path, [Parameter(Mandatory = $false)] [int]$Port = 8080 ) Add-Type -AssemblyName System.Net.HttpListener # Absoluten Pfad ermitteln try { $ResolvedPath = (Resolve-Path -Path $Path).Path } catch { Write-Error "โ Der angegebene Pfad '$Path' ist ungรผltig." exit 1 } # Verzeichnis und ggf. Dateiname extrahieren $Directory = if (Test-Path $ResolvedPath -PathType Leaf) { Split-Path $ResolvedPath } else { $ResolvedPath } Write-Host "๐ Freigegebenes Verzeichnis: $Directory" $FileName = if (Test-Path $ResolvedPath -PathType Leaf) { Split-Path $ResolvedPath -Leaf } else { $null } Write-Host "๐ Freigegebene Datei: $FileName " # HTTP-Listener starten $listener = New-Object System.Net.HttpListener $listener.Prefixes.Add("http://+:$Port/") $listener.Start() Write-Host "๐ HTTP-Server lรคuft auf Port $Port" Write-Host "๐ Freigegeben: $ResolvedPath" Write-Host "๐ก Warte auf Anfragen... (Strg+C zum Beenden)" try { while ($listener.IsListening) { $context = $listener.GetContext() $request = $context.Request $response = $context.Response $clientIP = $request.RemoteEndPoint.Address.ToString() $urlPath = $request.Url.AbsolutePath.TrimStart('/') $localPath = Join-Path $Directory $urlPath if ($request.Url.AbsolutePath -eq "/") { # Indexseite generieren $items = Get-ChildItem -Path $Directory $html = "