2

当我尝试使用webClient.DowloadFile.

WebClient webClient = new WebClient();
Uri downloadUri = new Uri("http://ia.mediaimdb.com/images/M/MV5BMjA5MTE1MjQyNV5BMl5BanBnXkFtZTcwODI4NDMwNw@@._V1._SY0.jpg");            
string posterFilePath = 
           "D:\Visual Studio Projects\Projects\TFS Source Control\" +
           "MyMovieManager\MyMoviesManager\MyMoviesManager\bin\Debug\" +
           "MoviesDB\Journey.2.The.Mysterious.Island.2012.DVDRip.XviD-DEPRiVED[ExtraTorrent]\" +
           "Journey.2.The.Mysterious.Island.2012.DVDRip.XviD-DEPRiVED[ExtraTorrent].png";
webClient.DownloadFile(downloadUri, posterFilePath); 

我发现了其他引发此异常的情况,我的解决方案是使用 kernel32 中的函数并编写其他函数来替换 File 和 Path 函数。

我可以对 DownloadFile 功能做些什么吗?

4

3 回答 3

2

您可以使用BCL 项目中的 LongPathFile 类,并手动写入结果流。这将需要使用DownloadData而不是DownloadFile,并管理自己编写的文件。

于 2012-10-11T18:00:13.480 回答
1

您可以将 webclient.DownloadFile 用于临时文件,即 C:\Temp\myDownload.png ,然后将其移动到您想要的路径。您将需要检查 c:\Temp 文件夹是否存在。如果没有,请创建它。

于 2012-10-11T18:33:56.087 回答
-1

需要注意的一点是,如果文件的地址(第一个参数)太长,如果您使用接受 2 个字符串的函数版本,也会引发此异常。自然,解决方案是将其转换为Uriusing new Uri(address)

于 2013-05-01T18:26:42.787 回答