<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Список файлов и папок на диске или в папке]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=13736</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=13736&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Список файлов и папок на диске или в папке».]]></description>
		<lastBuildDate>Fri, 15 Jan 2021 03:47:16 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Список файлов и папок на диске или в папке]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=144793#p144793</link>
			<description><![CDATA[<p>ОС лежит в папке &quot;A_WinDir&quot;.</p>]]></description>
			<author><![CDATA[null@example.com (ypppu)]]></author>
			<pubDate>Fri, 15 Jan 2021 03:47:16 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=144793#p144793</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Список файлов и папок на диске или в папке]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=144773#p144773</link>
			<description><![CDATA[<p>Так получает список дисков:<br /></p><div class="codebox"><pre><code>DriveGet, Drivelist, List
Loop, parse, Drivelist
   msgbox % Drivelist
</code></pre></div><p>Как исключить системный диск?</p>]]></description>
			<author><![CDATA[null@example.com (DD)]]></author>
			<pubDate>Thu, 14 Jan 2021 20:38:27 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=144773#p144773</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Список файлов и папок на диске или в папке]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=144763#p144763</link>
			<description><![CDATA[<p>А как бы обойти все диски кроме системного и сохранить структуру папок из них (в виде путей)?<br /></p><div class="codebox"><pre><code>#MaxMem
#NoEnv
SetBatchLines, -1

folder := &quot;C:\Tmp&quot;
Loop, %folder%\*.*, 2
   list .= A_LoopFileLongPath &quot;`n&quot;
FileAppend, % list, %A_scriptdir%\AllSubFldList.txt
list =
return</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (DD)]]></author>
			<pubDate>Thu, 14 Jan 2021 19:48:09 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=144763#p144763</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Список файлов и папок на диске или в папке]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=125644#p125644</link>
			<description><![CDATA[<p><strong>KusochekDobra</strong>, Да, буду сидеть и разбираться.</p>]]></description>
			<author><![CDATA[null@example.com (qqlexa)]]></author>
			<pubDate>Sat, 26 May 2018 21:41:56 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=125644#p125644</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Список файлов и папок на диске или в папке]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=125639#p125639</link>
			<description><![CDATA[<p>Хорошо, буду знать.</p>]]></description>
			<author><![CDATA[null@example.com (svoboden)]]></author>
			<pubDate>Sat, 26 May 2018 14:29:49 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=125639#p125639</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Список файлов и папок на диске или в папке]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=125637#p125637</link>
			<description><![CDATA[<p>В любом случае можно обойтись циклом вместо рекурсии.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Sat, 26 May 2018 14:17:38 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=125637#p125637</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Список файлов и папок на диске или в папке]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=125634#p125634</link>
			<description><![CDATA[<p><strong>teadrinker</strong>, так это понятно, мне хотелось через com просто, т.к. больше информации можно получить о каталогах/файлах.</p>]]></description>
			<author><![CDATA[null@example.com (svoboden)]]></author>
			<pubDate>Sat, 26 May 2018 14:03:18 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=125634#p125634</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Список файлов и папок на диске или в папке]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=125633#p125633</link>
			<description><![CDATA[<p>У вас Counter — статическая переменная, при каждом вызове новые данные приплюсовываются к старому значению.</p><p>Кроме того, не нужно создавать <em>fso := ComObjCreate(&quot;Scripting.FileSystemObject&quot;)</em> каждый раз заново при рекурсивном вызове, достаточно создать один раз и передавать fso при вызове.</p><p>Также нет никакого смысла разбивать алгоритм на две функции, <em>fso.GetFolder(Folder).Files.Count</em> можно получать сразу.</p><p>Вообще не стоит для этой задачи использовать рекурсию, можно получить переполнение стека.<br /></p><div class="codebox"><pre><code>#NoEnv
SetBatchLines, -1

folder := A_ScriptDir

counter := 0
Loop, Files, %folder%\*, FR
   counter++

MsgBox, % counter</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Sat, 26 May 2018 13:54:47 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=125633#p125633</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Список файлов и папок на диске или в папке]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=125631#p125631</link>
			<description><![CDATA[<p>Да, согласен, а если написать еще один msgbox внизу, то тоже результат другой. Это как-то прибавляет результат. Может, счетчик сбрасывать надо.</p>]]></description>
			<author><![CDATA[null@example.com (svoboden)]]></author>
			<pubDate>Sat, 26 May 2018 13:46:10 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=125631#p125631</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Список файлов и папок на диске или в папке]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=125630#p125630</link>
			<description><![CDATA[<p><strong>svoboden</strong>, вы привели хороший пример того, как НЕ нужно писать код.<br />Запустите:<br /></p><div class="codebox"><pre><code>FileCreateDir, % A_ScriptDir . &quot;\NewFolder\NewFolder&quot;
FileAppend,, % A_ScriptDir . &quot;\NewFolder\NewFolder\test.txt&quot;

    Folder := A_ScriptDir . &quot;\NewFolder&quot;

    CountFilesR(Folder) {
   static Counter := 0
   fso := ComObjCreate(&quot;Scripting.FileSystemObject&quot;)
   Folder := fso.GetFolder(Folder)
   Counter += Counter ? 0 : CountFiles(Folder)
   For Subfolder in Folder.SubFolders
   Counter += CountFiles(Subfolder),CountFilesR(Subfolder)
   return Counter
}

CountFiles(Folder) {
   fso := ComObjCreate(&quot;Scripting.FileSystemObject&quot;)
   Folder := fso.GetFolder(Folder)
   return fso.GetFolder(Folder).Files.Count
}

MsgBox % CountFilesR(Folder)
MsgBox % CountFilesR(Folder)</code></pre></div><p>Во втором сообщении результат другой, странно, правда?</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Sat, 26 May 2018 12:46:44 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=125630#p125630</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Список файлов и папок на диске или в папке]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=125619#p125619</link>
			<description><![CDATA[<p>Можно еще через Api. Так, например, можно найти количество файлов в каталогах/подкаталогах нужной папки:<br /></p><div class="codebox"><pre><code>
    Folder := &quot;Путь к каталогу&quot;

    CountFilesR(Folder) {
	static Counter := 0
	fso := ComObjCreate(&quot;Scripting.FileSystemObject&quot;)
	Folder := fso.GetFolder(Folder)
	Counter += Counter ? 0 : CountFiles(Folder)
	For Subfolder in Folder.SubFolders
	Counter += CountFiles(Subfolder),CountFilesR(Subfolder)
	return Counter
}

CountFiles(Folder) {
	fso := ComObjCreate(&quot;Scripting.FileSystemObject&quot;)
	Folder := fso.GetFolder(Folder)
	return fso.GetFolder(Folder).Files.Count
}

MsgBox % CountFilesR(Folder)
MsgBox % CountFiles(Folder)</code></pre></div><p>Насчет имен и информации каталогов/файлов, то вот:<br /><a href="https://msdn.microsoft.com/ru-ru/library/system.io.directory(v=vs.110).aspx">https://msdn.microsoft.com/ru-ru/librar … .110).aspx</a>,<br /><a href="https://msdn.microsoft.com/en-us/library/9kcx47hd.aspx">https://msdn.microsoft.com/en-us/library/9kcx47hd.aspx</a>.<br />Записать полученную информацию можно командой FileAppend.</p>]]></description>
			<author><![CDATA[null@example.com (svoboden)]]></author>
			<pubDate>Sat, 26 May 2018 00:16:03 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=125619#p125619</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Список файлов и папок на диске или в папке]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=125602#p125602</link>
			<description><![CDATA[<p>Используйте <a href="https://autohotkey.com/docs/commands/LoopFile.htm">Loop</a> для файлов и папок.</p>]]></description>
			<author><![CDATA[null@example.com (KusochekDobra)]]></author>
			<pubDate>Fri, 25 May 2018 17:56:20 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=125602#p125602</guid>
		</item>
		<item>
			<title><![CDATA[AHK: Список файлов и папок на диске или в папке]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=125599#p125599</link>
			<description><![CDATA[<p>Подскажите пожалуйста, можно ли путём ахк узнать все папки/файлы находящиеся в папке/диске.<br />Функция DriveGet позволяет получить информацию только о самом диске, а я хотел бы получить информацию о находящихся папках/файлах внутри папки/диска и записать всю полученную информацию в текстовый документ.<br />Пример текстового документа:<br /></p><div class="codebox"><pre><code>
Папок внутри папки/диска : 1
Название папки - New
Файлов внутри папки/диска : 5
Названия файлов - New1.txt, New2.txt, New3.txt, New4.txt, New5.txt
</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (qqlexa)]]></author>
			<pubDate>Fri, 25 May 2018 17:31:26 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=125599#p125599</guid>
		</item>
	</channel>
</rss>
