C# 删除git存储库

C# 删除git存储库,c#,git,libgit2sharp,C#,Git,Libgit2sharp,考虑以下计划: var path = Path.Combine( Path.GetTempPath(), Path.GetFileNameWithoutExtension(Path.GetRandomFileName())); Directory.CreateDirectory(path); var testFile = Path.Combine(path, "test.txt"); File.WriteAllText(testFile, "Test file"); var

考虑以下计划:

var path = Path.Combine(
    Path.GetTempPath(),
    Path.GetFileNameWithoutExtension(Path.GetRandomFileName()));
Directory.CreateDirectory(path);

var testFile = Path.Combine(path, "test.txt");
File.WriteAllText(testFile, "Test file");

var source = Repository.Init(path);

using (var repository = new Repository(source))
{
    repository.Index.Add("test.txt");
}

Directory.Delete(path, true); 
删除存储库文件夹时,我会收到一个
未经授权的访问异常
-对其中一个内部git文件的访问被拒绝。为了删除该文件夹,是否还有其他需要处理的内容

为了删除该文件夹,是否还有其他需要处理的内容

你的处理方式很好。上述问题有不同的起源

中所述,当出现与权限相关的问题时,会引发
UnauthorizedAccessException

实际上,Libgit2Sharp在这方面的行为与git类似,并将
.git/objects
层次结构下的文件标记为只读,因此在尝试删除它们时引发异常

为了解决这个问题,并在运行测试时简化清理阶段,我们开发了一个帮助器方法(即
DirectoryHelper.DeleteDirectory()
),它递归地取消设置那些只读属性并删除文件和目录

查看您是否愿意重新使用它