Du lädst damit ja auch nicht die Datei. Du musst zu erst mit dem HttpRequest alle Rückmeldungen abfangen und so lange prüfen, bis auch endlich der Datei-Header vom Server übergeben wird, damit der Browser (bzw. dein Programm) weiß, das es ein download ist. Dein Code würde nur bei Dateien funktionieren, die du direkt ansprechen kannst. Aber dein Link, den du verwendest liefert im Grunde nur ein Rapidshare eigenes S***** zurück. Und dadurch wird die Datei eben leer auf deinem Rechner bzw. defekt gespeichert.
Ganz so einfach ist es nicht. In solchen Fällen musst du tatsächlich im Benutzer simulieren, damit du am Ende den Header für die Datei bekommst. Denn direkt kommst du aus dem nicht an den Header ran. Den liefert wie gesagt ein S***** zurück.
So in etwa:
[
Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
Da steht beschrieben, wie ein Servers***** den passenden Header und somit die Datei zurückwirft.