我正在使用Visual Studio 2012在Windows 8 RTM(禁用UAC)上使用.NET 4.0开发Windows窗体应用程序。我当前的问题是,当我使用WebClient下载文件并在完成下载后尝试访问它时,文件。存在显示错误。如果我打开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
}
答案 0 :(得分:0)
在Windows 7中,默认情况下会阻止从网上下载的文件,并且必须取消阻止才能通过外部程序访问这些文件:
可能在Windows 8中也是如此。至于通过代码解锁:
Unblock File from within .net 4 c#
答案 1 :(得分:0)
最后我发现了这个问题,这是非常愚蠢和令人尴尬的。代码示例非常简单,因为我的整个抽象类会破坏这个问题。在我的抽象基类中,扩展名被添加了两次,因此输出文件是tempVideo.mp4.mp4。 Windows资源管理器似乎忽略了扩展名,因此它是唯一打开该文件的程序。