Почему mkdir иногда дает доступ к доступу?

У меня есть сценарии BAT, которые ничто не сложны и отлично работают на XP. Но на Win 7 около 1 из 5 исполнений mkdir, следующих за rmdir, дают тайну Access Denied. Например.

S:\TLIB importing\! Curtains\2 To process>rmdir temp3allout /s /q

S:\TLIB importing\! Curtains\2 To process>mkdir temp3allout
Access is denied.

После этого, когда я пытаюсь в Проводнике, у него нет проблем с созданием этого каталога. Запуск этой БАТ снова обычно преуспевает.

Любая идея, что здесь происходит?

Win XP был обычным диском 2Gb. Win 7-диск - это массив 2 Гбит Intel RST RAID1 с кэшированием и отключением очистки http://i.imgur.com/Ohqkg2t.png.

Ответ 1

Это происходит, когда файловая система еще не закончила удаление каталога.

Иногда это происходит синхронно, т.е. до завершения команды rmdir, но иногда бывает очень короткая, но ненулевая задержка. (В XP он всегда был синхронным, IIRC.)

Если возможно, избегайте удаления и немедленного воссоздания каталогов; если вы не можете этого избежать, вам нужно будет обнаружить отказ и повторить попытку.

Вероятно, вы также должны проверить и при необходимости повторить попытку rmdir; иногда rmdir сталкивается с той же проблемой и не удаляет все дерево каталогов.