foreach(new RecursiveIteratorIterator(new RecursiveDirectoryIterator(".")) as $file) {
echo "$file\n";
}
क्या इस कोड के लिए अप्रत्याशित ValueException फेंकने का कोई तरीका नहीं है "डीआईआर खोलने में विफल: अनुमति अस्वीकृत" जब भी निर्देशिका के अंदर एक अपठनीय उपनिर्देशिका है तो मैं सूची बनाने का प्रयास करता हूं?क्या मैं रिकर्सिव डायरेक्टरी इटरेटर को अपठनीय निर्देशिका छोड़ सकता हूं?
अद्यतन
while()
को foreach()
परिवर्तित और स्पष्ट रूप से Iterator::next()
try() catch {}
में लिपटे मदद नहीं करता है बुला। यह कोड:
$iter = new RecursiveIteratorIterator(new RecursiveDirectoryIterator("."));
while($iter->valid()) {
$file = $iter->current();
echo "$file\n";
try {
$iter->next();
} catch(UnexpectedValueException $e) {
}
};
अपठनीय उपनिर्देशिका होने पर एक अनंत लूप है।
कोशिश पकड़ ब्लॉक में लपेट। और यह लगता है कि s3v3n की टिप्पणी पर विस्तृत करने के लिए foreach कोष्ठक – s3v3n
के अंदर नई ऑब्जेक्ट्स बनाने के लिए एक बुरा विचार है। यह एक बुरा विचार प्रतीत होता है, क्योंकि वास्तव में क्या चल रहा है यह निर्धारित करना बहुत मुश्किल है। अच्छा कोड हमेशा सबसे छोटा या सबसे तेज़ कोड नहीं होता है। – DampeS8N
यह निर्धारित करना मुश्किल नहीं है कि क्या होता है यदि आपको पता है कि रिकर्सिवइटरेटरइटरेटर और रिकर्सिव डायरेक्टरी इटरेटर क्या है और उनका सामान्य उपयोग केस क्या है। यह आसान कोड है। –