<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; WSH:Рекурсивный вывод файлов в папке.]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=9191</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=9191&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «WSH:Рекурсивный вывод файлов в папке.».]]></description>
		<lastBuildDate>Sun, 16 Feb 2014 18:38:19 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: WSH:Рекурсивный вывод файлов в папке.]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=80110#p80110</link>
			<description><![CDATA[<p>Убрал все лишнее оставил только суть:<br /></p><div class="codebox"><pre><code>Dim startFolder

Set fso = CreateObject(&quot;Scripting.FileSystemObject&quot;)
&#039;Место указания пути рекурсии
startFolder = &quot;D:\1\&quot;

CheckFolderInFolder startFolder

Function CheckFolderInFolder (AdresFolder)
    Dim File
    Set Folder = FSO.GetFolder(AdresFolder)
    Set CollectionFolder = Folder.SubFolders
    Set CollectionFile = Folder.Files

    If CollectionFile.count &gt; 0 Then
        For Each File In CollectionFile
            &#039; Сообщение о файле при переборе
            MsgBox File.Path
        Next
    End If
    
    For Each SubFolder In CollectionFolder
        CheckFolderInFolder SubFolder
    Next

End Function
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (wildwolf007)]]></author>
			<pubDate>Sun, 16 Feb 2014 18:38:19 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=80110#p80110</guid>
		</item>
		<item>
			<title><![CDATA[Re: WSH:Рекурсивный вывод файлов в папке.]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=80100#p80100</link>
			<description><![CDATA[<div class="quotebox"><cite>wisgest пишет:</cite><blockquote><div class="quotebox"><blockquote><p>Нужно рекурсивно пройтись по всем папкам директории &quot;D:\&quot;…</p></blockquote></div><p>Сколько же ещё будет подниматься этот вопрос?</p><p><a href="http://forum.script-coding.com/viewtopic.php?pid=7851#p7851">http://forum.script-coding.com/viewtopi … 7851#p7851</a>:<br /></p><div class="quotebox"><cite>The gray Cardinal пишет:</cite><blockquote><p>Пример скрипта, использующего компонент (рекурсивно выведет подкаталоги каталога C:\Temp)…</p></blockquote></div></blockquote></div><br /><p>Вопрос будет подниматься до тех пор, пока решение не будет предложено на мой взгляд Ваше решение немного замудрено.</p>]]></description>
			<author><![CDATA[null@example.com (wildwolf007)]]></author>
			<pubDate>Sun, 16 Feb 2014 17:27:14 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=80100#p80100</guid>
		</item>
		<item>
			<title><![CDATA[Re: WSH:Рекурсивный вывод файлов в папке.]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=80099#p80099</link>
			<description><![CDATA[<p>Дописал полноценную рекурсию на VBS для просмотра каталогов начальной директории всех файлов&nbsp; вот код если кому будет необходимо:</p><div class="codebox"><pre><code>Dim startFolder, Files(), RazmerMassivaFiles,i,SpisokIzMassiva

RazmerMassivaFiles = 0
reDim Files(RazmerMassivaFiles)

Files(RazmerMassivaFiles) = &quot;В данной структуре каталогов нет файлов&quot;

Set fso = CreateObject(&quot;Scripting.FileSystemObject&quot;)
startFolder = &quot;D:\GamesMailRu\&quot;

CheckFolderInFolder startFolder

&#039;Вывод значений массива
For i=0 To RazmerMassivaFiles Step 1
    SpisokIzMassiva = SpisokIzMassiva + Files(i) +vbCrLf
    i=i+1
Next

MsgBox SpisokIzMassiva

Function CheckFolderInFolder (AdresFolder)
    &#039;MsgBox AdresFolder
    Dim File
    Set Folder = FSO.GetFolder(AdresFolder)
    Set CollectionFolder = Folder.SubFolders
    Set CollectionFile = Folder.Files
    &#039;MsgBox CollectionFile.count
    If CollectionFile.count &gt; 0 Then
        For Each File In CollectionFile
            Files(RazmerMassivaFiles) = File.Path
            &#039;MsgBox &quot;В массив Files(&quot;&amp;RazmerMassivaFiles &amp;&quot;) помещено значение = &quot; 

&amp;Files(RazmerMassivaFiles)
            RazmerMassivaFiles = RazmerMassivaFiles + 1
            reDim preserve Files(RazmerMassivaFiles)
            &#039;Files(RazmerMassivaFiles) = &quot;Пустое значение&quot;
        Next
    End If
    
    For Each SubFolder In CollectionFolder
        CheckFolderInFolder SubFolder
    Next

End Function
</code></pre></div><p>Единственное не могу понять почему&nbsp; строка &quot;MsgBox SpisokIzMassiva&quot; не выводит в сообщении весь массив ?</p>]]></description>
			<author><![CDATA[null@example.com (wildwolf007)]]></author>
			<pubDate>Sun, 16 Feb 2014 17:25:30 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=80099#p80099</guid>
		</item>
		<item>
			<title><![CDATA[Re: WSH:Рекурсивный вывод файлов в папке.]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=79645#p79645</link>
			<description><![CDATA[<p>По дате создания папки в которой находится файл.</p><p>Получилось вот так вот только чет я с многомерными массивами напортачил:</p><div class="codebox"><pre><code>&#039;On Error Resume Next
Set fso = CreateObject(&quot;Scripting.FileSystemObject&quot;)
startFolder = &quot;D:\1\&quot; 
If fso.FolderExists (startFolder) Then Start startFolder

Function Start(folderName)
&#039;MsgBox folderName
    Dim folder, file, fileCollection, folderCollection, subFolder, all, allmassiv
    Dim a(),i,j,k
    i=0        
    k=0
    reDim a(1,1)
    
    all = &quot;&quot;
    allmassiv = &quot;&quot;
    Set folder = fso.GetFolder(folderName)
    Set folderCollection = folder.subFolders
    For Each subFolder In folderCollection
        &#039;MsgBox subFolder.Path
        all = all + subFolder.Path +vbCrLf
        a(i) = all
        a(k) = subFolder.DateCreated
        &#039;MsgBox subFolder.DateCreated
        i=i+1
        k=k+1
        reDim preserve a(i,k)
        Set fileCollection = subFolder.Files   
        For Each file In fileCollection
            &#039;MsgBox file.Path
            all = all + file.Path +vbCrLf
            a(i)=all
            i=i+1
            k=k+1
            j=i
            reDim preserve a(i,k)
        Next 
    Next
        
    MsgBox all
    k=0
    For i=0 To j Step 1
    allmassiv = a(i,k) +vbCrLf
    k=k+1
    Next
   MsgBox allmassiv
End Function

</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (wildwolf007)]]></author>
			<pubDate>Fri, 31 Jan 2014 20:36:40 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=79645#p79645</guid>
		</item>
		<item>
			<title><![CDATA[Re: WSH:Рекурсивный вывод файлов в папке.]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=79631#p79631</link>
			<description><![CDATA[<p><strong>wildwolf007</strong>, пример рекурсивной обработки вложенных папок (с обработкой ошибок) Вы можете увидеть, например, <a href="http://forum.script-coding.com/viewtopic.php?pid=32111#p32111">здесь</a>.</p><div class="quotebox"><blockquote><p>Теперь я предполагаю все нужно поместить в трехмерный массив</p></blockquote></div><p>Зачем именно в трёхмерный? Используйте полный путь вместо пути и имени по отдельности.</p><div class="quotebox"><blockquote><p>и потом перебрать получившийся массив методом сортировки</p></blockquote></div><p>Некорректное выражение: <em>перебирать</em> что-либо методом сортировки невозможно. По каким критериям Вы собираетесь делать сортировку?</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Fri, 31 Jan 2014 18:38:49 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=79631#p79631</guid>
		</item>
		<item>
			<title><![CDATA[Re: WSH:Рекурсивный вывод файлов в папке.]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=79627#p79627</link>
			<description><![CDATA[<p>Спасибо я тоже к этому склоняюсь. Поэкспериментировал с отдельной папкой и все получилось.</p><p>(Мое предположение это проблема при работе с файловой системой попал на папку в которой запрещен вход.)</p><p>Скажите, а по логике все правильно построил какие Вы бы добавили дополнения или может могут вылести подводные камни ???</p><p>Теперь я предполагаю все нужно поместить в трехмерный массив<br />i - это полный путь папки.<br />j - имя файлов.<br />k - дата создания папки в которой находится файл.</p><p>и потом перебрать получившийся массив методом сортировки</p>]]></description>
			<author><![CDATA[null@example.com (wildwolf007)]]></author>
			<pubDate>Fri, 31 Jan 2014 18:26:14 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=79627#p79627</guid>
		</item>
		<item>
			<title><![CDATA[Re: WSH:Рекурсивный вывод файлов в папке.]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=79624#p79624</link>
			<description><![CDATA[<div class="quotebox"><blockquote><p>Не могу понять почему появляется ошибка при выполнении кода … разрешение отклонено</p></blockquote></div><p>Например, при попытке обратиться к содержимому «D:\System Volume Information».</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Fri, 31 Jan 2014 18:10:39 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=79624#p79624</guid>
		</item>
		<item>
			<title><![CDATA[Re: WSH:Рекурсивный вывод файлов в папке.]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=79619#p79619</link>
			<description><![CDATA[<p>Не могу понять почему появляется ошибка при выполнении кода хотя по началу выдает так как нужно ? </p><p>Хотя мое предположение это проблема при работе с файловой системой попал на папку в которой запрещен вход.</p><p>Осталось все упорядочить относительно даты создания.</p><p>Строка 16 символ 3 разрешение отклонено <br />на строке <br />		For Each file In fileCollection</p><div class="codebox"><pre><code>&#039;On Error Resume Next
Set fso = CreateObject(&quot;Scripting.FileSystemObject&quot;)
startFolder = &quot;D:\&quot; 
If fso.FolderExists (startFolder) Then Start startFolder

Function Start(folderName)
MsgBox folderName
    Dim folder, file, fileCollection, folderCollection, subFolder, all
    all = &quot;&quot;
    Set folder = fso.GetFolder(folderName)
    Set folderCollection = folder.subFolders
    For Each subFolder In folderCollection
        MsgBox subFolder.Path
        all = all + subFolder.Path +vbCrLf
        Set fileCollection = subFolder.Files   
        For Each file In fileCollection
            MsgBox file.Path
            all = all + file.Path +vbCrLf
        Next 
    Next
        
    MsgBox all
   
End Function</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (wildwolf007)]]></author>
			<pubDate>Fri, 31 Jan 2014 17:36:00 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=79619#p79619</guid>
		</item>
		<item>
			<title><![CDATA[Re: WSH:Рекурсивный вывод файлов в папке.]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=79613#p79613</link>
			<description><![CDATA[<div class="quotebox"><cite>dab00 пишет:</cite><blockquote><div class="quotebox"><cite>wildwolf007 пишет:</cite><blockquote><p>Dab00 Ваше решение перебирает только файлы в одной директории.</p></blockquote></div><p>В одной директории и всех ее поддиректориях, жаль, что Вы не вкурили.</p></blockquote></div><p>Да действительно все удаляет попробовал сделать так - не получилось, а если так не получается тогда тут и с массивом все не особо получится (скрипт заточен под удаление нужно что-то другое придумать будет):<br /></p><div class="codebox"><pre><code>Set fso = CreateObject(&quot;Scripting.FileSystemObject&quot;)
startFolder = &quot;D:\1\&quot;
OlderThanDate = DateAdd(&quot;d&quot;, -2, Date)
 
DeleteOldFiles startFolder, OlderThanDate
 
Function DeleteOldFiles(folderName, BeforeDate)
   Dim folder, file, fileCollection, folderCollection, subFolder 
   Set folder = fso.GetFolder(folderName)
   Set fileCollection = folder.Files
   For Each file In fileCollection
      If file.DateLastModified &lt; BeforeDate Then
        MsgBox file.Path
         &#039;fso.DeleteFile file.Path, True
      End If
   Next 
    Set folderCollection = folder.SubFolders
    For Each subFolder In folderCollection
        MsgBox subFolder.Path
       &#039;DeleteOldFiles subFolder.Path, BeforeDate
       &#039;If subFolder.Size = 0 Then subFolder.Delete True
    Next
End Function</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (wildwolf007)]]></author>
			<pubDate>Fri, 31 Jan 2014 17:13:55 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=79613#p79613</guid>
		</item>
		<item>
			<title><![CDATA[Re: WSH:Рекурсивный вывод файлов в папке.]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=79602#p79602</link>
			<description><![CDATA[<div class="quotebox"><cite>wildwolf007 пишет:</cite><blockquote><p>Dab00 Ваше решение перебирает только файлы в одной директории.</p></blockquote></div><p>В одной директории и всех ее поддиректориях, жаль, что Вы не вкурили.<br /></p><div class="quotebox"><cite>wildwolf007 пишет:</cite><blockquote><p>Ну, а всеж нельзя ли все на одном языке ?</p></blockquote></div><p>Не смотрел, что за компонент предлагает уважаемый wisgest, но по задаче напрашивается JS, та же сортировка массива, на VBS сложнее.</p>]]></description>
			<author><![CDATA[null@example.com (dab00)]]></author>
			<pubDate>Fri, 31 Jan 2014 14:33:59 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=79602#p79602</guid>
		</item>
		<item>
			<title><![CDATA[Re: WSH:Рекурсивный вывод файлов в папке.]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=79592#p79592</link>
			<description><![CDATA[<div class="quotebox"><cite>alexii пишет:</cite><blockquote><div class="quotebox"><blockquote><p>Спасибо, но Ваше решение я не могу использовать в своем коде.</p></blockquote></div><p>Зато Вы можете использовать код из предложенного решения, ибо ничто не мешает при условии отсутствия дополнительных файлов использовать hta c двумя языками.</p></blockquote></div><p>Ну, а всеж нельзя ли все на одном языке ? На VBS ? А то я с vbs только начинаю более или менее разбираться, а тут другой JS опять погружаться и опять на 2-3 дня.</p>]]></description>
			<author><![CDATA[null@example.com (wildwolf007)]]></author>
			<pubDate>Fri, 31 Jan 2014 12:48:45 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=79592#p79592</guid>
		</item>
		<item>
			<title><![CDATA[Re: WSH:Рекурсивный вывод файлов в папке.]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=79591#p79591</link>
			<description><![CDATA[<p>Dab00 Ваше решение перебирает только файлы в одной директории.</p>]]></description>
			<author><![CDATA[null@example.com (wildwolf007)]]></author>
			<pubDate>Fri, 31 Jan 2014 12:46:35 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=79591#p79591</guid>
		</item>
		<item>
			<title><![CDATA[Re: WSH:Рекурсивный вывод файлов в папке.]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=79579#p79579</link>
			<description><![CDATA[<div class="quotebox"><blockquote><p>Спасибо, но Ваше решение я не могу использовать в своем коде.</p></blockquote></div><p>Зато Вы можете использовать код из предложенного решения, ибо ничто не мешает при условии отсутствия дополнительных файлов использовать hta c двумя языками.</p>]]></description>
			<author><![CDATA[null@example.com (alexii)]]></author>
			<pubDate>Fri, 31 Jan 2014 06:09:25 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=79579#p79579</guid>
		</item>
		<item>
			<title><![CDATA[Re: WSH:Рекурсивный вывод файлов в папке.]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=79578#p79578</link>
			<description><![CDATA[<p>Основной исполняемый файл в hta</p>]]></description>
			<author><![CDATA[null@example.com (wildwolf007)]]></author>
			<pubDate>Fri, 31 Jan 2014 05:39:53 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=79578#p79578</guid>
		</item>
		<item>
			<title><![CDATA[Re: WSH:Рекурсивный вывод файлов в папке.]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=79577#p79577</link>
			<description><![CDATA[<p>Dab00 спасибо попробую разобраться.<br />Wisgest скажите зачем обращивать исполняемый файл еще дополнительными файлами ведь это в дальнейшем усложняет восприятие читабельность кода. Спасибо, но Ваше решение я не могу использовать в своем коде.</p>]]></description>
			<author><![CDATA[null@example.com (wildwolf007)]]></author>
			<pubDate>Fri, 31 Jan 2014 05:35:11 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=79577#p79577</guid>
		</item>
	</channel>
</rss>
