此代码通过更改任何无法删除的文件的只读权限来解决问题。
int count = 0;
while (count < 5) //give up after 5, there should be just 2 in a git repo
{
try
{
std::filesystem::remove_all(myRepoName);
break; // all done
}
catch (std::filesystem::filesystem_error &e)
{
std::this_thread::sleep_for (std::chrono::milliseconds(250));
std::string f ( e.what() );
int p = f.find("[");
p = f.find("[",p+1);
f = f.substr(p+1);
f = f.substr(0,f.length()-1);
std::filesystem::permissions(
f, std::filesystem::perms::owner_write );
count++;
}
}