2012-09-23 82 views
0

我正在開發Windows 4.0 RTM(UAC禁用)與Visual Studio 2012在.NET 4.0中的Windows窗體應用程序。我目前的問題是,當我用WebClient下載文件並嘗試完成後訪問它下載,File.Exists顯示false。如果我打開Windows資源管理器,該文件存在並且擁有超過10MB的空間。例如,它是一個視頻文件,如果我嘗試通過ffmpeg轉換它,ffmpeg顯示我無法找到文件C:\ ....但如果我複製該路徑並將其粘貼到資源管理器中,它會打開視頻。出了什麼問題? 「以管理員身份運行」不起作用。這是代碼。FileNotFound文件存在時

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 
} 
+0

你是如何啓動ffmpeg的? –

+0

命令行(有/無以admin身份運行),ffmpeg -i「C:\ path \ to \ target」 – Suchiman

+0

該路徑是否包含空格? –

回答

0

在Windows 7中,從網上下載文件默認阻止,必須要暢通,以便他們能夠通過外部程序來訪問:

有可能是在同一個Windows 8.至於解鎖通過代碼:
Unblock File from within .net 4 c#

+0

我通過WebClient下載的文件未被阻止,因爲我通過屬性檢查了它們 – Suchiman

0

最後,我發現這個問題,這是非常愚蠢和尷尬。代碼示例非常簡單,因爲我的整個抽象類會引發這個問題。在我的抽象基類中的某處,擴展名被添加了兩次,所以輸出文件是tempVideo.mp4.mp4。 Windows資源管理器似乎忽略擴展名,因此它是打開文件的唯一程序。

+0

它不是「忽略」擴展名,它默認隱藏它。按ALT - >工具 - >文件夾選項 - >查看 - >隱藏已知文件類型的擴展名。 –

+0

@ShadowWizard no我的意思是資源管理器打開tempVideo.mp4.mp4,如果我鍵入C:\ path \ to \ tempVideo.mp4 ,所以擴展在這部分被忽略 – Suchiman

相關問題