File.Copy方法使文件不可访问

Val*_*ale 3 c# file-access

我现在正在努力解决这个问题.我调用File.Copy方法后无法访问文件.这是我尝试过的:

File.Copy(sourceFile, destinationFile, true);
FileStream fs = File.Open(destinationFile, FileMode.Open);
Run Code Online (Sandbox Code Playgroud)

我在第二行收到UnauthorizedAccessException.它说:拒绝访问路径...... 我也试过这里提出的建议但是没有用.

任何帮助表示赞赏.

编辑:这是我发现的.如果我这样做:

File.Copy(sourceFile, destinationFile, true);
FileStream fs = File.Open(destinationFile, FileMode.Open, FileAccess.Read);
Run Code Online (Sandbox Code Playgroud)

它不会抛出异常.我尝试访问的文件是只读的.所以,我试图删除这样的只读属性:

File.Copy(sourceFile, destinationFile, true);
FileInfo fileInfo = new FileInfo(destinationFile);
fileInfo.IsReadOnly = false;
FileStream fs = File.Open(destinationFile, FileMode.Open, FileAccess.ReadWrite);
Run Code Online (Sandbox Code Playgroud)

我得到了和以前一样的例外.顺便说一句,我检查了我是否可以手动打开文件并进行编辑,我可以.当然,当我取消选中只读复选框时.我在调试时检查了Windows资源管理器中的文件属性,紧接在第三行之后,文件不再是只读的.拥有所有这些,我不明白为什么在第四行抛出异常.

Kie*_*one 5

您确定仅使用File.Copy无法打开的文件复制文件,而不是目标文件夹中的每个文件吗?这是一个常规的NTFS文件夹,还是网络共享?

如果您运行的是防病毒软件或安全软件,请尝试禁用它.创建文件后,他们通常会打开一个文件进行扫描.

更新

根据http://msdn.microsoft.com/en-us/library/b9skfh7s.aspx - UnauthorizedAccessException抛出File.Open将不会给出消息'访问路径...被拒绝'.(编辑:我也看不到File.Copy的消息,所以这可能是错的)

我怀疑是你的File.Copy那个异常失败了,你没有权限读取源文件或写目标文件.您可能正在查看突出显示的源代码行,该行显示了要执行的下一行.

所以 - 也许你的副本失败了,不是File.Open吗?