我想创建一个C#程序,可以从网站下载Flash(.swf)文件。这个程序应该使用提供的url来获取这个文件。 E.g如果我这个URL粘贴在我的程序,它应该能够将其下载此文件并保存到硬盘驱动器:C#从网站下载.swf文件
有什么建议?
我想创建一个C#程序,可以从网站下载Flash(.swf)文件。这个程序应该使用提供的url来获取这个文件。 E.g如果我这个URL粘贴在我的程序,它应该能够将其下载此文件并保存到硬盘驱动器:C#从网站下载.swf文件
有什么建议?
尝试使用WebRequest类。 在stackoverflow上有另一个question的例子。
尝试这样的事情
WebClient client = new WebClient();
string resource = "http://aynwebsite.com/flash/greeting2021.swf?";
client.DownloadFile(resource,"c:\\savingfoldername\\greeting.swf");
对,更清洁... +1 – misha 2012-07-18 07:21:44
谢谢。我会马上尝试。 – 2012-07-18 07:22:27
下载需要时间。有没有办法显示%的进展? – 2012-07-18 07:34:51
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;
可以节省磁盘流。
谢谢。我会马上尝试。 – 2012-07-18 07:27:21
下载需要时间。有没有办法显示%的进展? – 2012-07-18 07:37:12
不,它不想工作。它继续加载。我试图调试它。我坚持在这一行:client.DownloadFile(..),我没有得到任何异常。 – 2012-07-18 09:17:42
谢谢。我会马上尝试。 – 2012-07-18 07:26:23
请注意,我在上面提到的链接中有url参数。所以我认为在服务器端可以发出swf文件之前,服务器端会进行某种验证。 – 2012-07-18 10:35:52
哦,正在使用Windows窗体来做到这一点。现在我已经切换到Asp.Net。但现在我遇到的问题是它不下载整个文件。它只能复制980KB。但是,如果您将之前提到的网址粘贴到浏览器中,浏览器会复制整个文件。但是,如果我用我的程序来做这件事,我只会得到不完整的下载文件。 – 2012-07-18 10:52:53