<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Perl: Удаление пустой ветки каталогов</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/6856.html</link>
    <description>Ситуация: &lt;br&gt;Есть некое файловое хранилище с какой-то структурой папок. &lt;br&gt;Простенький скрипт по заданному расписанию чистит его, удаляя файлы удовлетворяющие определенным требованиям. Используется File::Find. &lt;br&gt;&lt;br&gt;Вопрос: &lt;br&gt;Как автоматом удалять оставшиеся пустыми папки чтобы не плодить мусор?&lt;br&gt;&lt;br&gt;Если в процедуру удаления файлов в конце добавить rmdir, то текущий каталог удалится если он остался пустым, а каталог на один уровень выше уже нет!&lt;br&gt;</description>

<item>
    <title>Perl: Удаление пустой ветки каталогов (demosfenus)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/6856.html#8</link>
    <pubDate>Wed, 17 Oct 2007 19:45:42 GMT</pubDate>
    <description>&amp;gt;&amp;gt;А нет чего-либо типа модуля File::Find но для работы с каталогами? &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;удаляй пряом из филе финд. &lt;br&gt;&lt;br&gt;Супер: работает быстро и ничего не грузит.&lt;br&gt;Спасибо огромное за код!&lt;br&gt;</description>
</item>

<item>
    <title>Perl: Удаление пустой ветки каталогов (demosfenus)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/6856.html#7</link>
    <pubDate>Wed, 17 Oct 2007 18:23:00 GMT</pubDate>
    <description>Спасибо попробую.&lt;br&gt;</description>
</item>

<item>
    <title>Perl: Удаление пустой ветки каталогов (angra)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/6856.html#6</link>
    <pubDate>Wed, 17 Oct 2007 14:41:11 GMT</pubDate>
    <description>&amp;gt;А если глубина структуры большая такой алгоритм всю оперативку не сожрет? &lt;br&gt;&lt;br&gt;А вы представляете какую глубину надо создать для этого? Кроме-того File::Find работает аналогичным образом, отжирая при этом больше памяти. Если он у вас справляется, то и такой обход справится :)&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Perl: Удаление пустой ветки каталогов (NuINu)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/6856.html#5</link>
    <pubDate>Wed, 17 Oct 2007 13:02:24 GMT</pubDate>
    <description>&amp;gt;&amp;gt;&amp;gt;А если глубина структуры большая такой алгоритм всю оперативку не сожрет? &lt;br&gt;&amp;gt;&amp;gt;&lt;br&gt;&amp;gt;&amp;gt;Есть такой косяк. Можно модифицировать алгоритм и рекурсию заменить стеком и циклом(впринципе &lt;br&gt;&amp;gt;&amp;gt;та же рекурсия, но более экономная). &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;А нет чего-либо типа модуля File::Find но для работы с каталогами? &lt;br&gt;&lt;br&gt;удаляй пряом из филе финд.&lt;br&gt;#!/usr/bin/perl -w&lt;br&gt;&lt;br&gt;use strict;&lt;br&gt;use File::Find;&lt;br&gt;use Data::Dumper;&lt;br&gt;&lt;br&gt;my &#064;directories_to_search = (&apos;./testdir1&apos;);&lt;br&gt;finddepth(&#123; wanted =&amp;gt; &#092;&amp;wanted, no_chdir =&amp;gt; 1 &#125;, &#064;directories_to_search);&lt;br&gt;&lt;br&gt;sub wanted &#123; &lt;br&gt;  my $t = $_;&lt;br&gt;  #print &quot;file: $File::Find::name&#092;n&quot;;&lt;br&gt;  #print &quot;it is: $t&#092;n&quot;;&lt;br&gt;  &lt;br&gt;  my $cnt;&lt;br&gt;  my $name = $File::Find::name;&lt;br&gt;  if(-d $name) &#123;&lt;br&gt;    print &quot;$name &#092;tis directory!&#092;n&quot;;&lt;br&gt;    if(is_empty($name)) &#123;&lt;br&gt;print &quot;$name &#092;tis EMPTY directory!&#092;n&quot;;&lt;br&gt;if(!rmdir($name)) &#123;&lt;br&gt;    print &quot;Error delete $name with errno: $!&#092;n&quot;;&lt;br&gt;&#125;&lt;br&gt;    &#125;&lt;br&gt;  &#125; elsif(-f $name) &#123;&lt;br&gt;    print &quot;$name &#092;tis file!&#092;n&quot;;&lt;br&gt;  &#125; else &#123;&lt;br&gt;    print &quot;$name &#092;tis unknown type!&#092;n&quot;;&lt;br&gt;  &#125;&lt;br&gt;&#125;&lt;br&gt;&lt;br&gt;&lt;br&gt;sub is_empty &#123;&lt;br&gt;    my $dir = shi</description>
</item>

<item>
    <title>Perl: Удаление пустой ветки каталогов (demosfenus)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/6856.html#4</link>
    <pubDate>Wed, 17 Oct 2007 11:23:02 GMT</pubDate>
    <description>&amp;gt;&amp;gt;А если глубина структуры большая такой алгоритм всю оперативку не сожрет? &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;Есть такой косяк. Можно модифицировать алгоритм и рекурсию заменить стеком и циклом(впринципе &lt;br&gt;&amp;gt;та же рекурсия, но более экономная). &lt;br&gt;&lt;br&gt;А нет чего-либо типа модуля File::Find но для работы с каталогами?&lt;br&gt;</description>
</item>

<item>
    <title>Perl: Удаление пустой ветки каталогов (_Android_)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/6856.html#3</link>
    <pubDate>Wed, 17 Oct 2007 11:02:25 GMT</pubDate>
    <description>&amp;gt;А если глубина структуры большая такой алгоритм всю оперативку не сожрет? &lt;br&gt;&lt;br&gt;Есть такой косяк. Можно модифицировать алгоритм и рекурсию заменить стеком и циклом(впринципе та же рекурсия, но более экономная).&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

<item>
    <title>Perl: Удаление пустой ветки каталогов (demosfenus)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/6856.html#2</link>
    <pubDate>Wed, 17 Oct 2007 10:08:42 GMT</pubDate>
    <description>&amp;gt;&amp;gt;Вопрос: &lt;br&gt;&amp;gt;&amp;gt;Как автоматом удалять оставшиеся пустыми папки чтобы не плодить мусор? &lt;br&gt;&amp;gt;&lt;br&gt;&amp;gt;Рекурсивный обход с удалением не подойдёт? &lt;br&gt;&amp;gt;Функции передаётся корневая папка хранилища. Она ищет все подпапки текущей папки, и &lt;br&gt;&amp;gt;для каждой запускает сама себя. Потом проверяет текущую папку на пустоту, &lt;br&gt;&amp;gt;и если она пуста, удаляет тек. папку. &lt;br&gt;&lt;br&gt;А если глубина структуры большая такой алгоритм всю оперативку не сожрет?&lt;br&gt;</description>
</item>

<item>
    <title>Perl: Удаление пустой ветки каталогов (Alu)</title>
    <link>https://www.opennet.ru/openforum/vsluhforumID9/6856.html#1</link>
    <pubDate>Wed, 17 Oct 2007 09:15:35 GMT</pubDate>
    <description>&amp;gt;Вопрос: &lt;br&gt;&amp;gt;Как автоматом удалять оставшиеся пустыми папки чтобы не плодить мусор? &lt;br&gt;&lt;br&gt;Рекурсивный обход с удалением не подойдёт? &lt;br&gt;Функции передаётся корневая папка хранилища. Она ищет все подпапки текущей папки, и для каждой запускает сама себя. Потом проверяет текущую папку на пустоту, и если она пуста, удаляет тек. папку.&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;</description>
</item>

</channel>
</rss>
