C#。如何删除git文件夹?

C#。如何删除git文件夹?,c#,C#,我的C#代码调用git和cloning repository,但当我的程序结束时,我需要删除这个包含clone repo的文件夹。 当我使用 Directory.Delete(path, true) 除了.git和当程序试图删除.git时,所有文件都将被删除- "Access to the path 'pack-3241a6c3ea7ff447e5ba864f5d87ef66c5913670.idx' is denied." 我试过了 但这没用 我怎样才能解决它 当从g

我的C#代码调用git和cloning repository,但当我的程序结束时,我需要删除这个包含clone repo的文件夹。 当我使用

Directory.Delete(path, true)
除了.git和当程序试图删除.git时,所有文件都将被删除-

"Access to the path 'pack-3241a6c3ea7ff447e5ba864f5d87ef66c5913670.idx' is denied."
我试过了

但这没用

我怎样才能解决它

当从gitlab克隆源时,该文件夹中包含的文件将是只读和隐藏的。所以如果您使用的是Directory.delete()文件是只读和隐藏的,以前不能删除,文件夹也不会删除。 要删除它,您应该在目录中找到所有文件(只读、隐藏,…),然后设置属性为“正常”。现在您可以删除所有文件,然后是文件夹

“路径”应使用“:\\”格式。示例:“C:\gitlab\”


您启动的git进程是否仍在运行?@AluanHaddad我已经注释掉了除删除之外的所有行。我很困惑。可能会显示更多的代码。另外,您可能有一个崩溃的git.exe,该git.exe是由上一个仍处于活动状态的调试会话启动的。@AluanHaddad我现在只有目录。请在我的代码中删除(@“C:/Test”,true)。git.exe未启动,我拥有管理员权限。我可以在资源管理器中删除它,而不会出现问题
目录。删除
不会删除只读文件。
var directory = new DirectoryInfo(path) { Attributes = FileAttributes.Normal };

foreach (var info in directory.GetFileSystemInfos("*", SearchOption.AllDirectories))
{
    info.Attributes = FileAttributes.Normal;
}

directory.Delete(true);