当我尝试使用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函数做些什么吗?
答案 0 :(得分:2)
您可以使用LongPathFile class from the BCL project,并手动写入结果流。这需要使用DownloadData而不是DownloadFile
,并自行管理文件。
答案 1 :(得分:1)
您可以将webclient.DownloadFile用于临时文件,即C:\ Temp \ myDownload.png,然后将其移动到所需的路径。您需要检查c:\ Temp文件夹是否存在。如果没有,请创建它。
答案 2 :(得分:-1)
有一点需要注意的是,如果使用接受2个字符串的函数的版本,如果文件的地址(第一个参数)太长,也会引发此异常。
当然,解决方案是使用Uri
将其转换为new Uri(address)
。