2012-07-18 113 views
0

我想創建一個C#程序,可以從網站下載Flash(.swf)文件。這個程序應該使用提供的url來獲取這個文件。 E.g如果我這個URL粘貼在我的程序,它應該能夠將其下載此文件並保存到硬盤驅動器:C#從網站下載.swf文件

Demo Link

有什麼建議?

回答

1

嘗試使用WebRequest類。 在stackoverflow上有另一個question的例子。

+0

謝謝。我會馬上嘗試。 – 2012-07-18 07:26:23

+0

請注意,我在上面提到的鏈接中有url參數。所以我認爲在服務器端可以發出swf文件之前,服務器端會進行某種驗證。 – 2012-07-18 10:35:52

+0

哦,正在使用Windows窗體來做到這一點。現在我已經切換到Asp.Net。但現在我遇到的問題是它不下載整個文件。它只能複製980KB。但是,如果您將之前提到的網址粘貼到瀏覽器中,瀏覽器會複製整個文件。但是,如果我用我的程序來做這件事,我只會得到不完整的下載文件。 – 2012-07-18 10:52:53

3

嘗試這樣的事情

WebClient client = new WebClient(); 

string resource = "http://aynwebsite.com/flash/greeting2021.swf?"; 

client.DownloadFile(resource,"c:\\savingfoldername\\greeting.swf"); 
+0

對,更清潔... +1 – misha 2012-07-18 07:21:44

+0

謝謝。我會馬上嘗試。 – 2012-07-18 07:22:27

+0

下載需要時間。有沒有辦法顯示%的進展? – 2012-07-18 07:34:51

1

嘗試System.Net.WebClient

WebClient wc = new WebClient(); 
wc.DownloadFile("http://www.songsterr.com/songsterr/player/SongsterrPlayer.swf?songId=85813&base=%2Fa&blank=%2FWebObjects%2FSongsterr.woa%2FContents%2FWebServerResources%2Fblank.flv%3F1342518734394&initialTrackIndex=1&revision=167860&showMixerPromoPopup=true&backingTracksEnabled=true"); 

否則,你可以使用

WebBrowser webBrowser =new WebBrowser(); 

webBrowser.Navigate("http://www.songsterr.com/songsterr/player/SongsterrPlayer.swf?songId=85813&base=%2Fa&blank=%2FWebObjects%2FSongsterr.woa%2FContents%2FWebServerResources%2Fblank.flv%3F1342518734394&initialTrackIndex=1&revision=167860&showMixerPromoPopup=true&backingTracksEnabled=true", "myfile.swf"); 

var filestream = webBrowser.DocumentStream; 

可以節省磁盤流。

+0

謝謝。我會馬上嘗試。 – 2012-07-18 07:27:21

+0

下載需要時間。有沒有辦法顯示%的進展? – 2012-07-18 07:37:12

+0

不,它不想工作。它繼續加載。我試圖調試它。我堅持在這一行:client.DownloadFile(..),我沒有得到任何異常。 – 2012-07-18 09:17:42