Проблема в том, что remove_dir_all()
сначала просматривает содержимое каталога, чтобы удалить любой файл или подкаталог, которые могут там быть. И у вас нет прав на чтение каталога, поэтому ошибка.
Вы можете позвонить вместо:
std::fs::remove_dir("dir").unwrap();
Он не пытается пройти по каталогу, а предполагает, что он уже пуст, и завершается ошибкой, если это не так.
Если вы хотите удалить непустой, 000
модемированный каталог, вам нужно сначала изменить разрешения на разумное значение, а затем безопасно вызвать remove_dir_all()
.