Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C中的目录重命名异常#_C# - Fatal编程技术网

C# C中的目录重命名异常#

C# C中的目录重命名异常#,c#,C#,当我尝试使用以下代码重命名目录时: try { System.IO.Directory.Move(oldPath, newPath); } catch (System.IO.IOException e2) { Console.WriteLine(e2.Message); } 我得到以下异常:进程无法访问该文件,因为它正被另一个进程使用 我不明白为什么它一开始就写着“文件” 此外,目录是空的。它指的是什么文件 最后,如何管理重命名目录而不出

当我尝试使用以下代码重命名目录时:

  try
  {
        System.IO.Directory.Move(oldPath, newPath);
  }
  catch (System.IO.IOException e2)
  {
        Console.WriteLine(e2.Message);
  }
我得到以下异常:进程无法访问该文件,因为它正被另一个进程使用

  • 我不明白为什么它一开始就写着“文件”
  • 此外,目录是空的。它指的是什么文件
  • 最后,如何管理重命名目录而不出现任何异常
  • 更新:我想我找到了异常的原因,这是因为我试图重命名位于谷歌硬盘中的文件/文件夹的文件/文件夹名。Google Drive应用程序是使用它的另一个进程!有没有在谷歌硬盘中重命名文件夹的解决方案?但奇怪的是,当我试图通过C#重命名位于Google Drive中的文件时,我没有遇到这个异常


    谢谢

    您的文件夹似乎正在被另一个进程使用。尝试关闭使用该文件夹的资源管理器或其他程序。如果没有任何帮助-请尝试重新启动计算机。如果这些方法不起作用,请考虑使用文件夹来免除另一个进程的使用。请注意,如果重新启动计算机后非系统文件夹被占用,这会很奇怪

  • 它显示“file”,因为底层命令可能使用 用于目录和文件以及 本地化错误字符串包含word文件
  • 即使某个目录为空,如果在应用程序中“打开”该目录,也可以锁定该目录进行任何编辑(是否在该目录中打开了资源管理器窗口,命令提示符“当前目录”是否设置为要移动/删除的目录)
  • 不幸的是,除非您想开始以编程方式杀死有问题的进程,否则您就无能为力

  • 您可以使用Process Explorer查找锁定该文件夹的进程。有关更多信息,请参阅。

    1验证newPath是否已不存在


    2验证您的目录不包含打开的文件

    这可能很明显,但您是否碰巧在该目录上或目录内打开了资源管理器?就文件系统而言,目录是一种特殊类型的文件。是的,资源管理器已打开。但是,当我尝试在其他一些目录上使用c#执行类似操作时,即使资源管理器窗口处于打开状态,它也能工作!即使我关闭浏览器,它也会给我同样的异常。请确保您没有通过以前的代码阅读内容。如果是这样,您可能需要关闭Reader希望您试图重命名的目录未被您试图重命名的同一个exe使用。