【问题标题】:Access to path is denied - File.Move fails but File.Delete works拒绝访问路径 - File.Move 失败,但 File.Delete 有效
【发布时间】:2017-10-23 17:04:17
【问题描述】:

我正在尝试执行一个简单的File.Move 操作,但我得到了

System.UnauthorizedAccessException 异常 - 拒绝访问路径。

据我所知,我试图移动的文件没有被使用(包含文件夹也已关闭)。我可以通过文件资源管理器手动移动文件。我试过File.Delete,效果很好。

我不确定发生了什么 - 如果 Visual Studio 说访问路径被拒绝,为什么 File.Move 会失败但 File.Delete 工作?

这是我的代码:

string file = @"C:\Data\VCR\150326\150326.MPG";
string destination = @"G:\ArchiveData\Video";

System.IO.File.Move(file, destination);

【问题讨论】:

  • 您是否尝试访问(或创建/删除)目标文件夹中的任何文件?尝试一些代码在该文件夹上执行某些操作,这可能是冲突的一个
  • destination 上加上一个反斜杠,以便清楚它是一个目录而不是文件名。 Windows 认为您正在尝试将文件 150326.MPG 复制到 G:\ArchiveData\Video(名为 Video 的文件)而不是将其复制到文件夹“Video”,如果该文件夹已经存在,那么显然复制到该文件名将失败。

标签: c# system.io.file unauthorizedaccessexcepti


【解决方案1】:

所以我的问题是我的目标路径不包含文件名。将文件名添加到我的变量 destination 使其工作:

string file = @"C:\Data\VCR\150326\150326.MPG";
string destination = @"G:\ArchiveData\Video\150326.MPG";

System.IO.File.Move(file, destination);

【讨论】:

    猜你喜欢
    • 2021-05-11
    • 2013-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-11
    • 2011-03-29
    相关资源
    最近更新 更多