C#删除.git文件夹

发布时间 2023-11-29 13:50:04作者: wzwyc

C#在通常情况下删除文件只需要调用下面的方法即可:

Directory.Delete(dir.FullName, true);

上面的代码会删除指定的文件夹及文件夹下面所有的子文件夹和文件。

但是用上面的代码去删除.git文件夹的目录时,貌似会失败,报异常。
具体的失败原因不是特别清楚,也没有去仔细钻研。
可能的原因是因为.git文件夹下面有隐藏文件和隐藏文件夹之类的。也有可能是用户权限,或者文件/文件夹的所属权的问题。

想了个变通的方法,可以调用控制台命令rd来删除文件夹。在操作系统的控制台下只需要调用下面的命令即可实现删除文件夹及文件夹下面所有的子文件夹和文件的功能:

rd /s /q 文件夹的路径

在WPF中调用控制台命令,可以借助CliWrap来完成。
1、安装CliWrap

Install-Package CliWrap

2、调用命令

CommandResult result = await Cli.Wrap("cmd.exe")
    .WithArguments(new[] { "/C", "rd", "/s", "/q", dir.FullName })
    .ExecuteAsync();