C# 如何使用c在打开某些文件时删除目录#
我必须删除根目录,但打开了一些文件,然后出现错误“进程无法访问该文件,因为它正被另一个进程使用” 因此,当某些文件处于打开模式时,如何删除目录(我知道在打开模式下使用for each loop单个文件删除,但我必须在没有for each loop的情况下删除目录)。您不能(至少在不关闭这些文件的情况下不能) 问题不在于C#程序,而在于Windows内核的一个严重限制:它无法删除打开(或锁定)的文件(因此不能删除目录,因为它现在不是空的) 您有两个选择:C# 如何使用c在打开某些文件时删除目录#,c#,C#,我必须删除根目录,但打开了一些文件,然后出现错误“进程无法访问该文件,因为它正被另一个进程使用” 因此,当某些文件处于打开模式时,如何删除目录(我知道在打开模式下使用for each loop单个文件删除,但我必须在没有for each loop的情况下删除目录)。您不能(至少在不关闭这些文件的情况下不能) 问题不在于C#程序,而在于Windows内核的一个严重限制:它无法删除打开(或锁定)的文件(因此不能删除目录,因为它现在不是空的) 您有两个选择: 使用诸如unlocker之类的机制强制关
- 使用诸如unlocker之类的机制强制关闭文件,然后删除它们
- 让打开文件的应用程序关闭文件,然后删除
- 关闭应用程序中的文件
- 运行垃圾收集以确保文件句柄无效
- 删除现在应该可以了
try
{
Directory.Delete("path", true);
}
catch (IOException)
{
}
finally
{
Directory.CreateDirectory("Path");
}
将文件复制到其他地方,然后删除目录可能重复的@styx,这有助于删除使用过的文件吗?这仍然是不可能的;)@你可以关闭它,然后重新打开它。假设你打开了一个PDF文件,你想删除它的目录,你不能这样做,它来自Windows本身,为什么这是不同的?您希望最终删除打开的文件。如果它包含打开的文件,这实际上是一个不操作:将不会重新创建目录尝试,但旧的目录仍然存在。您可以在内部目录中创建多个目录。在目录和外部目录结束后,放入您的文件并写下这段代码。我已经在我的代码中完成了。。。。只要里面没有打开的文件,这就是OQ