C#。如何删除git文件夹?
我的C#代码调用git和cloning repository,但当我的程序结束时,我需要删除这个包含clone repo的文件夹。 当我使用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
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);