के साथ खाली निर्देशिकाओं को रिकर्सलीली हटाएं मैं एसपीएल इटरेटर्स का उपयोग करके PHP में खाली निर्देशिकाओं के पेड़ को हटाने के तरीके से संघर्ष कर रहा हूं।PHP एसपीएल इटरेटर्स
$it = new RecursiveIteratorIterator(new RecursiveDirectoryIterator(
'/topdir', RecursiveIteratorIterator::CHILD_FIRST
));
foreach ($it as $file) {
if ($file->isDir()) {
rmdir((string)$file);
}
}
लेकिन RecursiveIteratorIterator::CHILD_FIRST
नीचे स्तर फ़ाइल से बचाता है:
/topdir
level1 level2
मैं निम्नलिखित की कोशिश की है: निम्नलिखित निर्देशिका संरचना जिसमें सभी निर्देशिका खाली हैं पर विचार करें लूप का हिस्सा होने से और मुझे मानक Directory not empty
ई_ चेतावनी मिलती है क्योंकि स्तर 1 खाली नहीं है।
मैं एसपीएल इटरेटर्स का उपयोग करके रिक्त निर्देशिकाओं के पेड़ को दोबारा कैसे हटा सकता हूं? नोट: मुझे पता है कि glob
, scandir
आदि के साथ ऐसा कैसे करें, कृपया समाधान के रूप में इन/समान कार्यों की पेशकश न करें।
मुझे लगता है कि मैं यहाँ बहुत प्राथमिक कुछ कमी किया जाना चाहिए ...
को
::SKIP_DOTS
फ्लैग जोड़ने आप सुनिश्चित करें कि इन सभी निर्देशिकाओं को शामिल कर रहे हैं निर्देशिका के अलावा कुछ और नहीं? –ठीक है हाँ वे संभवतः हैं, मैं इस त्रुटि को खाली डीआईआर के साथ पुन: उत्पन्न करने में सक्षम था। :) –
हां। मैंने विशेष रूप से इस समस्या के लिए एक निर्देशिका जांच के रूप में निर्देशिका संरचना बनाई है। – rdlowrey