|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Вывести все файлы и папки |
|
[решено] Вывести все файлы и папки
|
Старожил Сообщения: 398 |
Профиль | Сайт | Отправить PM | Цитировать Вот нашол в справке такое:
#Include <File.au3> #Include <Array.au3> $FileList=_FileListToArray(@DesktopDir) If @Error=1 Then MsgBox (0,"","No Files\Folders Found.") Exit EndIf _ArrayDisplay($FileList,"$FileList") |
|
------- Отправлено: 16:06, 18-03-2009 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата morgan1991:
#include <Array.au3> $aFilesList = _FileListToArrayEx(@DesktopDir, "*", 1) _ArrayDisplay($aFilesList) Func _FileListToArrayEx($sPath, $sMask="*", $iMode=-1) ;$iMode > 0 только папки (маска игнорируется), иначе папки + файлы If Not StringInStr(FileGetAttrib($sPath & "\"), "D") Then Return SetError(1, 0, 0) Local $hSearch, $sFindNext, $sFilePath, $iPathIsFolder, $i = 0 Local $sRegExpFilter = StringReplace(StringReplace($sMask, ".", "\."), "*", ".*") Local $iMax_Ret_Paths = 10000 Local $aPathesArr[$iMax_Ret_Paths+1] = [1, $sPath] While $i < $aPathesArr[0] $i += 1 $hSearch = FileFindFirstFile($aPathesArr[$i] & "\*") If $hSearch = -1 Then ContinueLoop While 1 $sFindNext = FileFindNextFile($hSearch) If @error Then ExitLoop $sFilePath = $aPathesArr[$i] & "\" & $sFindNext $iPathIsFolder = StringInStr(FileGetAttrib($sFilePath & "\"), "D") If $iMode <= 0 Or ($iMode > 0 And $iPathIsFolder) Then If $iPathIsFolder Or (Not $iPathIsFolder And StringRegExp($sFindNext, "(?i)" & $sRegExpFilter)) Then If $aPathesArr[0] >= $iMax_Ret_Paths Then $iMax_Ret_Paths *= 2 ReDim $aPathesArr[$iMax_Ret_Paths+1] EndIf $aPathesArr[0] += 1 $aPathesArr[$aPathesArr[0]] = $sFilePath EndIf EndIf WEnd FileClose($hSearch) Wend ReDim $aPathesArr[$aPathesArr[0]+1] Return $aPathesArr EndFunc |
|
------- Отправлено: 16:37, 18-03-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 398
|
Профиль | Сайт | Отправить PM | Цитировать Creat0R, спасибо, оно выводит только папки с рабочего стола, а надо всё полностью
Цитата Creat0R:
|
|
------- Отправлено: 17:17, 18-03-2009 | #3 |
Старожил Сообщения: 460
|
Профиль | Отправить PM | Цитировать #include <Array.au3> $aFilesList = _FileListToArrayEx(@DesktopDir, "*", 1) _ArrayDisplay($aFilesList) Func _FileListToArrayEx($sPath, $sMask="*", $iMode=-1) ;$iMode > 0 только папки (маска игнорируется), иначе папки + файлы If Not StringInStr(FileGetAttrib($sPath & "\"), "D") Then Return SetError(1, 0, 0) Local $hSearch, $sFindNext, $sFilePath, $iPathIsFolder, $i = 0 Local $sRegExpFilter = StringReplace(StringReplace($sMask, ".", "\."), "*", ".*") Local $iMax_Ret_Paths = 10000 Local $aPathesArr[$iMax_Ret_Paths+1] = [1, $sPath] While $i < $aPathesArr[0] $i += 1 $hSearch = FileFindFirstFile($aPathesArr[$i] & "\*") If $hSearch = -1 Then ContinueLoop While 1 $sFindNext = FileFindNextFile($hSearch) If @error Then ExitLoop $sFilePath = $aPathesArr[$i] & "\" & $sFindNext $iPathIsFolder = StringInStr(FileGetAttrib($sFilePath & "\"), "D") If $iMode <= 0 Or $iMode > 0 Then If $iPathIsFolder Or (Not $iPathIsFolder And StringRegExp($sFindNext, "(?i)" & $sRegExpFilter)) Then If $aPathesArr[0] >= $iMax_Ret_Paths Then $iMax_Ret_Paths *= 2 ReDim $aPathesArr[$iMax_Ret_Paths+1] EndIf $aPathesArr[0] += 1 $aPathesArr[$aPathesArr[0]] = $sFilePath EndIf EndIf WEnd FileClose($hSearch) Wend ReDim $aPathesArr[$aPathesArr[0]+1] Return $aPathesArr EndFunc Цитата:
Цитата:
|
||
------- Отправлено: 18:15, 18-03-2009 | #4 |
Старожил Сообщения: 398
|
Профиль | Сайт | Отправить PM | Цитировать Дак всёравно выводит только с рабочего стола, а надо со всех жестаков и носителей.
|
|
------- Отправлено: 19:03, 18-03-2009 | #5 |
Старожил Сообщения: 460
|
Профиль | Отправить PM | Цитировать Цитата morgan1991:
так как скорее всего напоримся на ограничения по выводу строк в ListView элементе. а делается так, вот тут Цитата:
Цитата:
$var = DriveGetDrive( "all" ) If NOT @error Then MsgBox(4096,"", "Found " & $var[0] & " drives") For $i = 1 to $var[0] MsgBox(4096,"Drive " & $i, $var[$i]) Next EndIf а далее перебором вызывать поиск файлов и папок.. файлов та многа на жестких - обробатываться бууууууууддддееееиттт ))))))))))))) |
|||
------- Отправлено: 19:13, 18-03-2009 | #6 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата proxy:
Цитата proxy:
|
||
------- Отправлено: 22:35, 18-03-2009 | #7 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Доступ - Никак не удаляются файлы (AVI и все остальные форматы) .:[все вопросы]:. | Microsoft Windows 2000/XP | 105 | 30-06-2010 11:58 | ||
Прочее - [решено] На XP Pro видны не все общие папки | sasha-lav | Сетевые технологии | 9 | 23-11-2009 14:45 | |
Ошибка - [решено] Не запускаются ВСЕ файлы | VLT | Microsoft Windows 2000/XP | 5 | 05-03-2009 10:35 | |
[решено] Как удалить файлы с папки...? | Cobra_1_Stas | Автоматическая установка Windows 2000/XP/2003 | 40 | 10-10-2006 10:11 | |
В NC не отображаются все файлы из папки i386 | vivanco3 | Хочу все знать | 16 | 01-04-2004 21:01 |
|