Вы можете открыть дескриптор каталога, используя флаг FILE_FLAG_BACKUP_SEMANTICS:
#include <windows.h>
#include <stdio.h>
void main()
{
CreateDirectory(".\\testdir",NULL);
system("pause");
HANDLE hDir = CreateFile(".\\testdir",0,FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE,0,OPEN_EXISTING,FILE_FLAG_BACKUP_SEMANTICS|FILE_FLAG_DELETE_ON_CLOSE,NULL);
CloseHandle(hDir);
}
Это сработало на компьютере, на котором я тестировал (если каталог пуст), но я не уверен, что онзадокументировано как действительная вещь.