2012-07-18 116 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