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()
),它递归地取消设置那些只读属性并删除文件和目录
查看您是否愿意重新使用它