0

VisualStudio2012を使用してWindows8RTM(UACが無効)上の.NET 4.0でWindowsフォームアプリケーションを開発しています。現在の問題は、WebClientでファイルをダウンロードし、ダウンロードの完了後にアクセスしようとすると、File.Existsがfalseを表示することです。 。Windowsエクスプローラーを開くと、ファイルが存在し、10MBを超えています。たとえば、それはビデオファイルであり、ffmpegを介して変換しようとすると、ffmpegはファイルC:\ ....が見つからないことを示しますが、そのパスをコピーしてエクスプローラーに貼り付けると、ビデオが開きます。何が問題なのですか?「管理者として実行」は役に立ちません。これがコードです。

String video = Path.Combine(Environment.CurrentDirectory, "tempVideo.mp4");
WebClient downloader = new WebClient();
downloader.DownloadFile(new Uri("http://someurl/somevideo.mp4"), video); //download is successfull
FileInfo dlVideo = new FileInfo(video);
if(dlVideo.Exists) //always false, File.Exists(video) also false
{
//Some other actions on file
}
4

2 に答える 2

0

最後に、私は問題を見つけました。それは非常に愚かで恥ずかしいものでした。私の抽象クラス全体がこの質問を吹き飛ばすので、コード例は非常に単純化されました。私の抽象基本クラスのどこかに、拡張子が 2 回追加されたため、出力ファイルは tempVideo.mp4.mp4 でした。Windows エクスプローラーは拡張子を無視しているように見えるため、ファイルを開いた唯一のプログラムでした。

于 2012-09-23T15:50:50.370 に答える
0

Windows 7 では、Web からダウンロードしたファイルは既定でブロックされており、外部プログラムからアクセスするにはブロックを解除する必要があります。

おそらく、Windows 8 でも同じです。コードによるブロック解除については、
.net 4 c# 内からファイルのブロックを解除します。

于 2012-09-23T15:23:10.023 に答える