Tôi đang cố gắng tạo một hàm hồi quy thư mục mạnh mẽ đệ quy.FindFirstFile trả về quyền truy cập bị từ chối
Với các thư mục thông thường hoạt động khá tốt.
Vấn đề xuất hiện khi tôi tạo ra một "hardcore" direcory, như:
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ài khoảng 25000 (ít hơn giới hạn MSDN: 32,767). Về cơ bản tôi đã tạo thư mục này đệ quy cho đến khi hàm CreatDirectory thất bại.
Bây giờ, điều kỳ lạ là, mà chức năng của tôi có thể xóa 2 thư mục thì FindFirstFile không thành công với 0x5:
\\?\C:\test\x\ ... \x\x\x\*.* < no error
\\?\C:\test\x\ ... \x\x\*.* < no error
\\?\C:\test\x\ ... \x\*.* < access denied
(tôi có thể chạy lại nó, ứng dụng này là chậm nhai lên thư mục, 2 x 2, có lẽ cho đến khi chiều dài đường đi khá nhỏ)
Tôi đang chạy FindFirstFile để kiểm tra xem thư mục có trống không.
- Có giới hạn nào ít tài liệu hơn không?
- FindFirstFile chỉ đơn giản là không hoạt động? (buggy?)
- Tôi có thiếu một số loại quyền hạn NTFS không?
- Cái gì khác ...
EDIT: LƯU Ý QUAN TRỌNG: Nếu tôi chạy bước chương trình bằng cách bước chậm ... sau đó không có gì sẽ thất bại.
plz hiển thị cho chúng tôi mã bị tước của bạn –
Mã rất lớn và tôi không thấy hữu ích khi đăng bài. – lerosQ
Tôi đã làm điều này chính xác một số lần và không bao giờ có một vấn đề; vấn đề có nhiều khả năng nhất trong mã của bạn. Ít nhất hãy thử giảm nó xuống một ví dụ tối thiểu để xem nó là một cái gì đó hiển nhiên. – Luke