删除目录,重新创建目录,并向其中添加文件

本文关键字:文件 添加 创建目录 删除目录 | 更新日期: 2023-09-27 18:16:46

我的问题是。我创建了一个目录,并将其归档为运行特定进程的文件,在随后的运行中,它会删除该目录,重新创建它并开始用文件填充它。

根' scripts '"许多文件"

所有这些代码似乎运行良好,没有错误,直到我打开我的Windows资源管理器窗口,导航到"脚本"目录。当我再次运行它时,它会像预期的那样将我踢出文件夹,但它会抛出一个异常,试图向目录添加文件,当我查看'scripts'目录时甚至没有退出。

DirectoryNotFoundException was caught: Could not find a part of the path

My Code是这样的

if (Directory.Exists(scriptsDirectory))
    Directory.Delete(scriptsDirectory, true);
Directory.Create(scriptsDirectory));
File.WriteAllText(scriptsDirectory + fileName, output);

我在网上找到了这个:Windows资源管理器和目录。delete ()

Windows资源管理器似乎有些奇怪,但我的问题是不同的。它不会在删除时抛出异常,但是当我试图将文件添加到目录时,b/c createDirectory似乎没有在我在目录中触发。

我的解决方案如下

删除目录,重新创建目录,并向其中添加文件

我的解决方案不是删除目录,而是删除目录中的所有文件,这对我来说很有效。

if (Directory.Exists(strScriptsDirectory))
{                
    DirectoryInfo directoryInfo = new DirectoryInfo(strScriptsDirectory);
    // Delete the files
    foreach (FileInfo fileInfo in directoryInfo.GetFiles())
        fileInfo.Delete();
    // Delete the directories here if you need to.
}
else
    Directory.CreateDirectory(strScriptsDirectory);

此修复可能不适用于所有解决方案,并且链接中提供的解决方案似乎不太好。我们尝试的另一个解决方案是写一个while (true)循环,它有一个try catch来尝试创建目录并向其中添加文件(如果add文件引起异常,它将被捕获并再次尝试),如果它成功,它将删除测试文件并跳出while。

是否有人有任何更干净的解决方案,允许您删除目录并重新创建,而不必担心用户是否在资源管理器窗口内?