Próbuję utworzyć niezawodną funkcję rekursywnego folderu deleterów.FindFirstFile zwraca odmowę dostępu
Z normalnymi katalogami działa całkiem dobrze.
problem pojawia się podczas tworzenia się "podstawowych" direcory jak:
C: \ test \ x \ x \ x \ x \ x \ x \ x \ x \ x \ x \ x \ x \ x \ x \ x \ x \ x \ x \ x \ x \ ... \ x \ x \ x
długość ta wynosi około 25000 (poniżej granicy MSDN: 32,767). Zasadniczo stworzyłem ten katalog rekurencyjnie, dopóki nie zadziała funkcja CreatDirectory.
Teraz Najdziwniejsze jest to, że moja funkcja jest w stanie usunąć 2 katalogi wtedy FindFirstFile nie powiedzie się z 0x5:
\\?\C:\test\x\ ... \x\x\x\*.* < no error
\\?\C:\test\x\ ... \x\x\*.* < no error
\\?\C:\test\x\ ... \x\*.* < access denied
(mogę ponownie uruchomić go, aplikacja jest powoli żuje się folder, 2 na 2, prawdopodobnie dopóki długość ścieżki nie będzie dość mała)
Używam FindFirstFile, aby sprawdzić, czy folder jest pusty.
- Czy istnieje jakieś ograniczenie, które jest mniej udokumentowane?
- Plik FindFirstFile po prostu nie działa? (buggy?)
- Czy brakuje mi jakiegoś uprawnienia NTFS?
- Coś innego ...
EDIT: UWAGA: Jeśli mogę uruchomić programu krok po kroku, powoli ... to nic się nie powiedzie.
plz pokaż nam swój pozbawiony kodu kod –
Kod jest ogromny i nie wydaje mi się użyteczny do publikowania. – lerosQ
Zrobiłem to dokładnie kilka razy i nigdy nie miałem problemu; problem jest najprawdopodobniej w twoim kodzie. Przynajmniej spróbuj zredukować go do minimalnego przykładu, aby zobaczyć, czy to coś oczywistego. – Luke