मैं एक मजबूत रिकर्सिव फ़ोल्डर डिलीटर फ़ंक्शन बनाने की कोशिश कर रहा हूं।FindFirstFile रिटर्न एक्सेस
सामान्य निर्देशिकाओं के साथ बहुत बढ़िया काम करता है।
समस्या प्रतीत होता है जब मैं एक "कट्टर" direcory बनाते हैं, जैसे:
C: \ test \ x \ x \ x \ x \ x \ x \ x \ x \ x \ x \ x \ एक्स \ x \ x \ x \ x \ x \ x \ x \ x \ ... \ x \ x \ x
इसकी लंबाई लगभग 25000 (एमएसडीएन सीमा से कम: 32,767) है। मूल रूप से जब तक CreatDirectory फ़ंक्शन विफल नहीं हुआ तब तक मैंने इस निर्देशिका को बार-बार बनाया।
अब, अजीब बात है, मेरी समारोह 2 निर्देशिकाओं को नष्ट करने में सक्षम है कि तब FindFirstFile 0x5 के साथ विफल हो जाता है:
\\?\C:\test\x\ ... \x\x\x\*.* < no error
\\?\C:\test\x\ ... \x\x\*.* < no error
\\?\C:\test\x\ ... \x\*.* < access denied
(मैं इसे फिर से चलाएं कर सकते हैं, एप्लिकेशन धीरे धीरे है फ़ोल्डर ऊपर चबाता है, 2 से 2, संभवतः जब तक पथ की लंबाई बहुत छोटी हो जाती है)
मैं ढूँढ रहा हूं कि फ़ोल्डर खाली है या नहीं, यह जांचने के लिए FindFirstFile चला रहा है।
- क्या कोई ऐसी सीमा है जो कम दस्तावेज है?
- FindFirstFile बस काम नहीं करता है? (छोटी गाड़ी?)
- क्या मुझे कुछ प्रकार की एनटीएफएस अनुमति की बात याद आ रही है? बाकी
- कुछ ...
संपादित करें: महत्वपूर्ण नोट: अगर मैं कदम से कार्यक्रम कदम चलाने धीरे धीरे ... तो कुछ भी नहीं असफल हो जायेगी।
कृपया हमें अपना स्ट्रिप कोड दिखाएं –
कोड बहुत बड़ा है, और मुझे इसे पोस्ट करने के लिए उपयोगी नहीं लगता है। – lerosQ
मैंने इस सटीक चीज को कई बार किया है और कभी भी कोई समस्या नहीं हुई है; समस्या आपके कोड में सबसे अधिक संभावना है। कम से कम इसे कम से कम उदाहरण में कम करने का प्रयास करें ताकि यह देखने के लिए कि यह कुछ स्पष्ट है या नहीं। – Luke