|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Посчитать количество файлов в папке |
|
|
Посчитать количество файлов в папке
|
Новый участник Сообщения: 35 |
Профиль | Отправить PM | Цитировать Доброго времени суток ! Подскажите пожалуйста как можно посчитать количество файлов в папке ?
|
|
Отправлено: 09:14, 13-08-2009 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать |
Отправлено: 09:26, 13-08-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 35
|
Профиль | Отправить PM | Цитировать Благодарю ! А если с подкаталогами ? Думаю тоже пригодится.
|
Отправлено: 09:27, 13-08-2009 | #3 |
Новый участник Сообщения: 35
|
Профиль | Отправить PM | Цитировать Если папка пуста, вылетает ошибка Можно как нибудь её обойти ?
|
Отправлено: 10:06, 13-08-2009 | #4 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата Lodoss:
#Include <File.au3> $sFPath = @WindowsDir $aFiles = _FileListToArray($sFPath, '*', 1) $iFiles = 0 If IsArray($aFiles) Then $iFiles = $aFiles[0] MsgBox(64, "Результат", 'В папке "'& $sFPath & '" найдено '& $iFiles &' файлов.') Цитата Lodoss:
#Include <File.au3> $sFPath = @WindowsDir $iFiles = _FilesInFolder($sFPath) MsgBox(64, "Результат", 'В папке "'& $sFPath & '" найдено '& $iFiles &' файлов.') Func _FilesInFolder($sRoot) Local $aFolders = _FileListToArray($sRoot,'*', 2) Local $aFiles = _FileListToArray($sRoot,'*', 1), $iCount=0 If IsArray($aFolders) Then For $i=1 To $aFolders[0] $iCount+= _FilesInFolder($sRoot &"\"& $aFolders[$i]) Next EndIf If IsArray($aFiles) Then $iCount += $aFiles[0] Return $iCount EndFunc |
|||
Отправлено: 10:13, 13-08-2009 | #5 |
Новый участник Сообщения: 35
|
Профиль | Отправить PM | Цитировать Большущее спасибо !!! А то массивы ну никак не могу победить
|
Отправлено: 10:23, 13-08-2009 | #6 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата Lodoss:
|
|
Отправлено: 11:22, 13-08-2009 | #7 |
Пользователь Сообщения: 135
|
Профиль | Отправить PM | Цитировать |
Отправлено: 00:50, 16-08-2009 | #8 |
Новый участник Сообщения: 1
|
Профиль | Отправить PM | Цитировать Не стал создавать новую тему, так как вопрос, кажется, похожий, но чуть посложней.
Пытался написать скрипт, создающий древовидный список папок и файлов, но мозги закипают и ничего не выходит, кроме "вылетания" скрипта с ошибкой или неверного результата. Понятно, что надо использовать рекурсию, но пока до конца не разобрался. Может, у кого есть готовое решение? :-) |
Отправлено: 21:32, 20-08-2009 | #9 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Yoxcel, можно, конечно, и «FileFindFirstFile/FileFindNextFile», однако в этом случае, на мой взгляд, самое простое — пользовать не средства AutoIt, а библиотеку «Scripting.FileSystemObject»:
и делать сие по полной аналогии с известными скриптами vbscript: Local Const $DriveTypeFixed = 2 Local $objFSO Local $objDrive $objFSO = ObjCreate("Scripting.FileSystemObject") For $objDrive In $objFSO.Drives() If $objDrive.DriveType = $DriveTypeFixed Then ScanFolders($objDrive.RootFolder) EndIf Next $objFSO = "" Exit(0) ;============================================================================= ;============================================================================= Func ScanFolders($objFolder) Local $objSubFolder Local $objFile ; Перебирать можно как в нисходящей… ConsoleWrite("[" & $objFolder.Path & "]" & @CRLF) For $objFile In $objFolder.Files ConsoleWrite($objFile.Name & @CRLF) Next For $objSubFolder In $objFolder.SubFolders ScanFolders($objSubFolder) Next ; …так и в восходящей последовательности. ;ConsoleWrite("[" & $objFolder.Path & "]" & @CRLF) ; ;For $objFile In $objFolder.Files ; ConsoleWrite($objFile.Name & @CRLF) ;Next EndFunc ;============================================================================= |
Отправлено: 22:43, 20-08-2009 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
C/C++ - посчитать количество символов без пробела | ShadowMas | Программирование и базы данных | 5 | 07-05-2009 10:51 | |
WinApi||посчитать сколько файлов и папок на диске | bezumes | Программирование и базы данных | 16 | 24-12-2006 12:08 | |
Количество одновременно открытых файлов по сети | inq | Microsoft Windows 2000/XP | 0 | 12-03-2006 21:40 | |
По smb видно ограниченное количество файлов. | Igor_I | Общий по FreeBSD | 12 | 27-11-2005 18:08 | |
Увеличить количество одновременно открытых файлов | Guest | Microsoft Windows 95/98/Me (архив) | 2 | 16-10-2002 16:16 |
|