移动文件时文件已存在

时间:2017-03-16 14:48:56

标签: c# file winapi directory

在Windows资源管理器中,您可以使用以下结构:

  • 主目录
    • 新目录(a directory)
    • 新目录(a file without an extension)

我的结构是:

  • 主目录
    • 新目录(a directory)
    • 一些File.txt

我要做的是重命名"一些File.txt"到了"新目录",就像在资源管理器中一样。我正在使用File.Move("/Main Directory/Some File.txt", "/Main Directory/New Directory");

但是,我一直在说例外

  

当该文件已存在时无法创建文件。

我认为它并不喜欢这样一个名为" New Directory"的目录。但鉴于同名目录和文件可能共存,我不明白为什么Move API会对此有所了解。

有没有办法让它在复制文件时忽略具有相同名称的目录,反之亦然?

编辑:我最近重新安装了Windows并忘了重新打开文件扩展名,因此我在资源管理器中重命名并不像我以前那样修改扩展程序。随着扩展,我无法执行重命名。所以行为实际上是预期的。我将此留在这里以防将来有人做同样的事情。

1 个答案:

答案 0 :(得分:3)

  

...鉴于同名的目录和文件可以共存......

该陈述不正确。容器中的每个对象都必须具有不同的名称。据推测,您的shell配置为隐藏已注册文件类型的扩展名,这会导致您做出错误的声明。

报告的错误消息是准确的,如果不重命名其中一个文件,则无法避免。