Benutzer mit den meisten Antworten
get Content-Length from url

Frage
-
Hallo,
ich möchte gerne vor dem Download einer Datei dessen Größe wissen.
Nach etwas suche hatte ich das hier gefunden:
$webClient = New-Object System.Net.WebClient $webClient.OpenRead("https://downloads.giga.de/android/SM-G900F_UM_Open_Kitkat_Ger_D01_140307.pdf") [Int64]$fileSize = $webClient.ResponseHeaders["Content-Length"] Write-Host $fileSize
Das liefert mir auch die gewünschte Größe, jedoch funktioniert die Abfrage nur 2x, wenn ich das Script zum 3x starte, auch mit einer anderen url scheitert es mit folgendem Fehler:
+ $webClient.OpenRead("https://downloads.giga.de/android/SM-G900F_UM_Op ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : WebExceptionWenn ich eine neue Console öffne funktioniert es wieder 2x.
Das hilft leider auch nicht:
Remove-Variable fileSize Remove-Variable webClient
Kann mir jemand helfen?
Danke schon mal für die Hilfe.
- Bearbeitet Bjoernar Donnerstag, 14. Juni 2018 20:10
Antworten
-
Siehe hier: LINK
"You must call Stream.Close when finished with the Stream to avoid running out of system resources."
Du musst den Stream (OpenRead) als eigenes Objekt erzeugen und nach dem Lesen wieder schließen (s.u.). Dann kannst du das unbegrenzt wiederholen.
$webClient = New-Object System.Net.WebClient $stream = $webClient.OpenRead("https://downloads.giga.de/android/SM-G900F_UM_Open_Kitkat_Ger_D01_140307.pdf") [Int64]$fileSize = $webClient.ResponseHeaders["Content-Length"] Write-Host $fileSize $stream.close()
Wenn du ganz damit durch bist, ist es ne gute Idee das Objekt zu verwerfen, mit $Stream.dispose() .Grüße, Denniver
Blog: http://bytecookie.wordpress.com
Kostenloser Powershell Code Manager v5: Link
(u.a. Codesnippets verwalten + komplexe Scripte graphisch darstellen)
Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
Warum das Ganze? Hier gibts die Antwort.
- Bearbeitet Denniver ReiningMVP, Moderator Samstag, 16. Juni 2018 01:23
- Als Antwort vorgeschlagen BOfH-666 Dienstag, 19. Juni 2018 07:17
- Als Antwort markiert Denniver ReiningMVP, Moderator Mittwoch, 20. Juni 2018 11:49
Alle Antworten
-
> + $webClient.OpenRead("https://downloads.giga.de/android/SM-G900F_UM_Op ...
Ohne das ausprobiert zu haben: $WebClient.Dispose - https://msdn.microsoft.com/de-de/library/system.net.webclient(v=vs.110).aspx
-
Siehe hier: LINK
"You must call Stream.Close when finished with the Stream to avoid running out of system resources."
Du musst den Stream (OpenRead) als eigenes Objekt erzeugen und nach dem Lesen wieder schließen (s.u.). Dann kannst du das unbegrenzt wiederholen.
$webClient = New-Object System.Net.WebClient $stream = $webClient.OpenRead("https://downloads.giga.de/android/SM-G900F_UM_Open_Kitkat_Ger_D01_140307.pdf") [Int64]$fileSize = $webClient.ResponseHeaders["Content-Length"] Write-Host $fileSize $stream.close()
Wenn du ganz damit durch bist, ist es ne gute Idee das Objekt zu verwerfen, mit $Stream.dispose() .Grüße, Denniver
Blog: http://bytecookie.wordpress.com
Kostenloser Powershell Code Manager v5: Link
(u.a. Codesnippets verwalten + komplexe Scripte graphisch darstellen)
Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
Warum das Ganze? Hier gibts die Antwort.
- Bearbeitet Denniver ReiningMVP, Moderator Samstag, 16. Juni 2018 01:23
- Als Antwort vorgeschlagen BOfH-666 Dienstag, 19. Juni 2018 07:17
- Als Antwort markiert Denniver ReiningMVP, Moderator Mittwoch, 20. Juni 2018 11:49