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 クラスを使用して、結果のストリームに手動で書き込むことができます。これには、代わりにDownloadDataDownloadFileを使用し、ファイルを自分で作成して管理する必要があります。

于 2012-10-11T18:00:13.480 に答える
1

webclient.DownloadFileを使用して一時ファイル(C:\ Temp \ myDownload.png)に移動し、目的のパスに移動します。c:\Tempフォルダーが存在するかどうかを確認する必要があります。そうでない場合は、作成します。

于 2012-10-11T18:33:56.087 に答える
-1

注意すべきことの 1 つは、2 つの文字列を受け入れるバージョンの関数を使用する場合、ファイルへのアドレス (最初の引数) が長すぎる場合にも、この例外が発生することです。当然の解決策は、それをUriusingに変換することnew Uri(address)です。

于 2013-05-01T18:26:42.787 に答える