Русское сообщество AutoIt

  • Май 20, 2012, 12:20:53 *
  • Добро пожаловать, Гость
Пожалуйста, войдите или зарегистрируйтесь.

Войти
Расширенный поиск  

Новости:

Создан файловый архив для участников форума.

Закачивайте свои файлы и получайте рейтинг, прямые ссылки, и т.п.

Для изображений и скриншотов по прежнему есть AUTOIT.RV.UA

Реклама

Автор Тема: Дерево папок и файлов !  (Прочитано 3236 раз)

0 Пользователей и 2 Гостей смотрят эту тему.

romashka [?]

  • Новичок
  • *
  • Репутация: 0
  • Offline Offline
  • Сообщений: 11
  • Версия AutoIt: 3.0.0.0
    • Награды
Дерево папок и файлов !
« Создано: Август 30, 2010, 01:53:26 »
Нужен скрипт на автоит !
Который запишет мне все расположение папок и файлов на диске в файл а потом оттуда прочитает в GUI,но с подпапками и прочем.Тоесть он будет читать НЕ напрямую а то,что уже ЗАПИСАЛ в некий файл и потом ОТТУДА ПРОЧИТАЛ все расположение.ТОесть дал мне схему расположения файлов и папок на компьютере ! Еще не поняли? Ну вот например если ввести в cmd - tree c:\ ,то будет чтото подобное ! но там как видим все слитно и єто на километр такого листа а мне нужно чтбы было в меню там подменю список..ну как обычный файл менеджер почти !!!

Ну я незнаю как это обьяснить просто очень нужно это касается универа !!!!! помогите если не трудно !!!!!!!!!! Я с универа домой должна принести файл в котором записано ВСЕ что есть на компе все файлы и папки (но не содрежимое а тоесть расположение место) В ЧИТАЕМОМ ВИДЕ!!!!!!!! :IL_AutoIt_1: :IL_AutoIt_1: :IL_AutoIt_1: :IL_AutoIt_1:
« Последнее редактирование: Август 30, 2010, 02:28:53 от romashka »



  Записан

Yashied [?]

  • Глобальный модератор
  • AutoIt MVP
  • *
  • *****
  • Репутация: 1905
  • Online Online
  • Пол: Мужской
  • Сообщений: 3968
  • Версия AutoIt: 3+
    • Награды
Re: Дерево папок и файлов !
« Ответ #1, Отправлен: Август 30, 2010, 02:13:09 »
Есть задача с которой я не могу справиться !
Нужно предоставить все файлы и все папки на компьютере но в необычном ввидео !
В оффлайне ! Тоесть както их записать все в файл и потом прочитать с помощью автоит !
Но так,чтобы было удобно по папочкам.Но ОФФ-записбю так бы сказать !

Что могу сделать я - так это с помощью консоли и команды tree но там немного не так как мне нужно а именно не могу сделать чтобы ы скею были папки там..в общем кто может помогите !!!! :whistle: :whistle: :whistle: :IL_AutoIt_1:

romashka, ты что сегодня курил(а)? Я вообще ничего не понял, т.е. совсем. Я советую тебе немного наморщить ум, сосредоточиться и написать еще раз, но только более земным языком, то, что собственно требуется. В противном случае, я закрою эту тему к :Censored: матери.

:smoking:
« Последнее редактирование: Август 30, 2010, 02:18:56 от Yashied »



  Записан
Думай, прежде чем говорить.

Yuriy [?]

  • Скриптер
  • ****
  • Репутация: 149
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 456
  • Версия AutoIt: 3.3.6.1
    • Награды
Re: Дерево папок и файлов !
« Ответ #2, Отправлен: Август 30, 2010, 03:17:09 »
romashka
Посмотри на скрипт Yashied
"Поиск файлов на диске" тут Поиск файлов на диске
в строке _FindFiles('C:', '*.txt') вместо *.txt поставь маску *.*
Посмотри как он работает. Может тебе этого и достаточно будет.
Тогда просто вместо вывода в консоль выведешь в файл.
Но строк будет очень много.




  Записан
OS Windows XP Professional Rus OEM 2002 SP3

asdf8 [?]

  • Продвинутый
  • ***
  • Репутация: 69
  • Online Online
  • Сообщений: 263
  • Версия AutoIt: 3.3.8.0
    • Награды
Re: Дерево папок и файлов !
« Ответ #3, Отправлен: Август 30, 2010, 03:19:20 »
Ну в Total Commander есть архиваторный плагин Catalog Maker, он как раз это делает.
Есть еще программа Beyond Compare, в ней тоже можно сделать образ диска без содержимого.
Это конечно не AutoIt, но тоже удобно.




  Записан

romashka [?]

  • Новичок
  • *

  • Автор темы
  • Репутация: 0
  • Offline Offline
  • Сообщений: 11
  • Версия AutoIt: 3.0.0.0
    • Награды
Re: Дерево папок и файлов !
« Ответ #4, Отправлен: Август 30, 2010, 04:20:33 »
нет делов том что нужно именно на автоит (((
но как незнаю..(((
от него скрипт вроде бы понятно но как сделать так чтобы он записывал все что нужно то ..((




  Записан

Yuriy [?]

  • Скриптер
  • ****
  • Репутация: 149
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 456
  • Версия AutoIt: 3.3.6.1
    • Награды
Re: Дерево папок и файлов !
« Ответ #5, Отправлен: Август 30, 2010, 04:44:24 »
Так еще быстрее.
Код: AutoIt [Выделить]
RunWait(@ComSpec & " /c " & "dir c:\ /s >list.txt", "", @SW_HIDE)
MsgBox(64, "Инфо", "Готово")
Все запишется в файл list.txt в директории откуда запущен скрипт.


Добавлено: Август 30, 2010, 04:59:45
Цитата
от него скрипт вроде бы понятно но как сделать так чтобы он записывал все что нужно то ..((
Если имеется в виду скрипт Yashied, то так попробуй.
Код: AutoIt [Выделить]
#Include <File.au3>
$file = FileOpen("test.txt", 1)
If $file = -1 Then
    MsgBox(0, "Error", "Unable to open file.")
    Exit
EndIf

_FindFiles('C:', '*.*')

Func _FindFiles($sRoot, $sFile)

    Local $FileList

    $FileList = _FileListToArray($sRoot, $sFile, 1)
    If Not @error Then
        For $i = 1 To $FileList[0]
            ;ConsoleWrite($sRoot & '\' & $FileList[$i] & @CR)
            FileWrite($file, $sRoot & '\' & $FileList[$i] & @CR)
        Next
    EndIf
    $FileList = _FileListToArray($sRoot, '*', 2)
    If Not @error Then
        For $i = 1 To $FileList[0]
            _FindFiles($sRoot & '\' & $FileList[$i], $sFile)
        Next
    EndIf
EndFunc   ;==>_FindFiles
FileClose($file)
MsgBox(64, "Инфо", "Готово")
« Последнее редактирование: Август 30, 2010, 05:01:00 от Yuriy, Причина: Объединение сообщений »



  Записан

romashka [?]

  • Новичок
  • *

  • Автор темы
  • Репутация: 0
  • Offline Offline
  • Сообщений: 11
  • Версия AutoIt: 3.0.0.0
    • Награды
Re: Дерево папок и файлов !
« Ответ #6, Отправлен: Август 30, 2010, 05:00:43 »
проблему решила сама представаляете !!! с помощью скрипта от яшида !




  Записан

Yashied [?]

  • Глобальный модератор
  • AutoIt MVP
  • *
  • *****
  • Репутация: 1905
  • Online Online
  • Пол: Мужской
  • Сообщений: 3968
  • Версия AutoIt: 3+
    • Награды
Re: Дерево папок и файлов !
« Ответ #7, Отправлен: Август 30, 2010, 13:44:26 »
Нужен скрипт на автоит!
Который запишет мне все расположение папок и файлов на диске в файл а потом оттуда прочитает в GUI, но с подпапками и прочем...

Ромашка, А вот мне интересно, с помощью какого такого "скрипта от яшида" ты решила этот вопрос? Я вроде не выкладывал скрипт, который отображает в GUI дерево папок, и тем более непосредственно из файла-образа. Получить список файлов на диске, это не проблема, но отображение потом этого хозяйства в GUI (TreeView) будет нетривиальной задачей, здесь по идее должна получиться жуткая рекурсия. Или может быть ты опять неверно сформулировала задачу?

:wall_brake:

В любом случае, вот, что у меня получилось.


TreeToDisk.au3 (этим скриптом создаешь файл-образ)

Код: AutoIt [Выделить]
#Include <File.au3>

Opt('MustDeclareVars', 1)

Global Const $sRoot = RegRead('HKLM\SOFTWARE\AutoIt v3\AutoIt', 'InstallDir')
Global Const $sFile = @ScriptDir & '\tree.txt'

Global $hFile

$hFile = FileOpen($sFile, 2)
_EnumFiles($sRoot)
FileClose($hFile)

Func _EnumFiles($sRoot)

    Local $FileList

    FileWriteLine($hFile, $sRoot & '\')
    $FileList = _FileListToArray($sRoot, '*', 2)
    If Not @error Then
        For $i = 1 To $FileList[0]
            _EnumFiles($sRoot & '\' & $FileList[$i])
        Next
    EndIf
    $FileList = _FileListToArray($sRoot, '*', 1)
    If Not @error Then
        For $i = 1 To $FileList[0]
            FileWriteLine($hFile, $sRoot & '\' & $FileList[$i])
        Next
    EndIf
EndFunc   ;==>_EnumFiles


TreeFromDisk.au3 (этот скрипт отображает созданный ранее файл-образ в TreeView)

Код: AutoIt [Выделить]
#Include <GUIConstantsEx.au3>
#Include <GUIImageList.au3>
#Include <GUITreeView.au3>
#Include <TreeViewConstants.au3>
#Include <WindowsConstants.au3>

Opt('MustDeclareVars', 1)

Global Const $sFile = @ScriptDir & '\tree.txt'

Global $hForm, $hTreeView, $hImageList, $hFile, $sRoot

SplashTextOn(':-)', 'Wait...', 300, 100, Default, Default, 32, 'Tahoma', 18)

$hForm = GUICreate('MyGUI', 600, 600)
GUICtrlCreateTreeView(20, 20, 560, 560, BitOR($TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS), $WS_EX_CLIENTEDGE)
$hTreeView = GUICtrlGetHandle(-1)

$hFile = FileOpen(@ScriptDir & '\tree.txt')
$sRoot = FileReadLine($hFile)
If $sRoot Then
    $hImageList = _GUIImageList_Create(16, 16, 5, 1)
    _GUIImageList_AddIcon($hImageList, @SystemDir & '\shell32.dll', 3)
    _GUIImageList_AddIcon($hImageList, @SystemDir & '\shell32.dll', 4)
    _GUIImageList_AddIcon($hImageList, @SystemDir & '\shell32.dll', 0)
    _GUICtrlTreeView_SetNormalImageList($hTreeView, $hImageList)
    _GUICtrlTreeView_BeginUpdate($hTreeView)
    _EnumPaths($sRoot)
    _GUICtrlTreeView_SetState($hTreeView, _GUICtrlTreeView_GetFirstItem($hTreeView), $TVIS_EXPANDED, 1)
    _GUICtrlTreeView_EndUpdate($hTreeView)
EndIf

FileClose($hFile)

GUIRegisterMsg($WM_NOTIFY, 'WM_NOTIFY')

SplashOff()

GUISetState()

Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE

Func _EnumPaths($sRoot, $hItem = 0)

    Local $hSubItem, $Data, $Dir, $Path

    While 1
        $Dir = StringSplit($sRoot, '\')
        If StringRight($Dir[$Dir[0] - 1], 1) = ':' Then
            $Dir[$Dir[0] - 1] &= '\'
        EndIf
        $hSubItem = _GUICtrlTreeView_AddChild($hTreeView, $hItem, $Dir[$Dir[0] - 1], 0, 1)
        While 1
            $Path = FileReadLine($hFile)
            Switch @error
                Case  0

                Case -1
                    Return 0
                Case Else
                    Return SetError(2, 0, 0)
            EndSwitch
            If Not $Path Then
                ContinueLoop
            EndIf
            $Dir = StringSplit($Path, '\')
            If $Dir[$Dir[0]] Then
                If StringRegExpReplace($Path, '\\.[^\\]*\Z', '\\') = $sRoot Then
                    _GUICtrlTreeView_AddChild($hTreeView, $hSubItem, $Dir[$Dir[0]], 2, 2)
                    ContinueLoop
                Else
                    Return SetError(1, 0, $Path)
                EndIf
            EndIf
            If StringRegExpReplace($Path, '\\.[^\\]*\\\Z', '\\') <> $sRoot Then
                Return $Path
            EndIf
            While 1
                $Data = $Path
                $Path = _EnumPaths($Path, $hSubItem)
                Switch @error
                    Case 1
                        _GUICtrlTreeView_AddChild($hTreeView, $hSubItem, StringRegExpReplace($Path, '^.*\\', ''), 2, 2)
                        ExitLoop
                    Case 2
                        Return SetError(2, 0, 0)
                EndSwitch
                If Not $Path Then
                    Return 0
                EndIf
                If StringRegExpReplace($Path, '\\.[^\\]*\\\Z', '\\') = $sRoot Then
                    ContinueLoop
                Else
                    Return $Path
                EndIf
            WEnd
        WEnd
    WEnd
EndFunc   ;==>_EnumPaths

Func WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam)

    Local $tNMTREEVIEW = DllStructCreate($tagNMTREEVIEW , $lParam)
    Local $hTV = DllStructGetData($tNMTREEVIEW, 'hWndFrom')
    Local $ID = DllStructGetData($tNMTREEVIEW, 'Code')

    Switch $hTV
        Case $hTreeView
            Switch $ID
                Case $TVN_ITEMEXPANDEDA, $TVN_ITEMEXPANDEDW
                    _GUICtrlTreeView_SetImageIndex($hTreeView, DllStructGetData($tNMTREEVIEW, 'NewhItem'), BitAND(DllStructGetData($tNMTREEVIEW, 'NewState'), $TVIS_EXPANDED) = $TVIS_EXPANDED)
            EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_NOTIFY
« Последнее редактирование: Август 30, 2010, 16:11:02 от Yashied »



  Записан

Yashied [?]

  • Глобальный модератор
  • AutoIt MVP
  • *
  • *****
  • Репутация: 1905
  • Online Online
  • Пол: Мужской
  • Сообщений: 3968
  • Версия AutoIt: 3+
    • Награды
Re: Дерево папок и файлов !
« Ответ #8, Отправлен: Август 31, 2010, 13:22:40 »
Так никто и не заценил второй пример (TreeFromDisk.au3) с чумавой рекурсией?

:whistle:




  Записан

Yuriy [?]

  • Скриптер
  • ****
  • Репутация: 149
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 456
  • Версия AutoIt: 3.3.6.1
    • Награды
Re: Дерево папок и файлов !
« Ответ #9, Отправлен: Август 31, 2010, 15:26:00 »
Yashied
Я попробовал.
Замечательно.
Взял себе, в коллекцию.




  Записан

Guezt Gutsy [?]

  • Продвинутый
  • ***
  • Репутация: 75
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 333
  • Версия AutoIt: 3.3.6.1
    • Награды
Re: Дерево папок и файлов !
« Ответ #10, Отправлен: Август 31, 2010, 15:32:52 »
Так никто и не заценил второй пример (TreeFromDisk.au3) с чумавой рекурсией?

 :whistle:
Отличная работа! Мне не меньше года усердного изучения АНГЛИЙСКОГО ( именно его, а не самого программирования ) надо что бы такое самостоятельно навоять  :thumbs_up:




  Записан

Zaramot [?]

  • AutoIt Гуру
  • *****
  • Репутация: 456
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 883
  • Версия AutoIt: v3.3.8.1
  • I ♥ AutoIt
    • Награды
Re: Дерево папок и файлов !
« Ответ #11, Отправлен: Ноябрь 30, 2010, 23:34:58 »
А это не сойдёт ? Через веб-браузер  ;)

Код: AutoIt [Выделить]
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

$Form1 = GUICreate("Form1", 613, 423, 192, 124)
$Obj1 = ObjCreate("Shell.Explorer.2")
$Obj1_ctrl = GUICtrlCreateObj($Obj1, 0, 0, 610, 420)
GUISetState(@SW_SHOW)
$Obj1.Navigate("C:\")
Sleep(1000)
$Obj1.Navigate("C:\")

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit

    EndSwitch
WEnd




  Записан

armenxxx1 [?]

  • Осваивающий
  • **
  • Репутация: 30
  • Offline Offline
  • Сообщений: 114
  • Версия AutoIt: 3.3.6.1
    • Награды
Re: Дерево папок и файлов !
« Ответ #12, Отправлен: Май 07, 2012, 22:58:17 »
Примеры Yashied очень хорошо. Но как можно сделать вот так
Нажмите для отображения изображения в оригинальном размере.
или так
Нажмите для отображения изображения в оригинальном размере.
 :(




  Записан
Извините, если я пишу неправильно, но я иностранец.

AZJIO [?]

Re: Дерево папок и файлов !
« Ответ #13, Отправлен: Май 08, 2012, 06:40:22 »
armenxxx1
Попробуй открыть explorer.exe
Если используя AutoIt, то вот тема




  Записан
Вытащи сначала бревно из своего глаза, тогда поймёшь как вытащить сучёк из глаза брата своего.

armenxxx1 [?]

  • Осваивающий
  • **
  • Репутация: 30
  • Offline Offline
  • Сообщений: 114
  • Версия AutoIt: 3.3.6.1
    • Награды
Re: Дерево папок и файлов !
« Ответ #14, Отправлен: Май 08, 2012, 18:08:31 »
Спасибо, но я хочу сохранены в файл и прочитать его и визуализировать как пример Yashied.




  Записан
 


Похожие темы
Тема Автор Ответов Просмотров Последний ответ
TOSHIFEX - Откат скрытых файлов и папок / системных файлов / расширении файлов
Примеры и рабочие проекты
CreatoR 7 2417 Последний ответ Апрель 16, 2011, 00:12:31
от CreatoR
выделение папок в зависимости от наличия в них нередактируемых файлов
Стол заказов
Alexey 4 1257 Последний ответ Ноябрь 10, 2010, 17:01:39
от Alexey
[Элементы GUI] Дерево папок и файлов в TreeView напямую с диска.
AutoIt для новичков
dronet 54 5458 Последний ответ Январь 28, 2012, 15:05:59
от AZJIO
[Файловая система] Работа с атрибутами файлов и папок
AutoIt для новичков
damien2008 1 527 Последний ответ Август 05, 2011, 12:29:05
от gregaz
Архивация файлов/папок по checkbox
AutoIt для новичков
k790 27 2077 Последний ответ Январь 23, 2012, 19:58:39
от k790
Дерево папок и файлов
AutoIt для новичков
armenxxx1 3 571 Последний ответ Ноябрь 03, 2011, 22:09:22
от AZJIO
Разархивация файлов/папок по checkbox
AutoIt для новичков
k790 14 990 Последний ответ Декабрь 08, 2011, 17:55:36
от k790
получение значения переменных из названий папок и файлов с помощью шаблона
Регулярные выражения и прочее
black1 7 571 Последний ответ Январь 29, 2012, 02:31:14
от black1
Одновременное копирование множества файлов и папок
AutoIt для новичков
Timerlan 38 1144 Последний ответ Март 28, 2012, 18:50:58
от Timerlan
Удаление файлов и папок из списка.
Стол заказов
Fergus 2 219 Последний ответ Апрель 08, 2012, 22:34:38
от Fergus


Реклама

* Последние сообщения на форуме
post Re: Проблема с циклами While
[AutoIt для новичков] Yashied Сегодня в 12:14:25
post Сглаживание рывков при передачи новых координат игрока по TCP/IP
[Общение] Ganibal95 Сегодня в 12:10:37
post Перенесено: Уроки программирования и автоматизации посредством AutoIt для чайников
[AutoIt для новичков] Yashied Сегодня в 12:09:28
post Re: Защита исходного кода программы
[AutoIt для новичков] iamOmg Сегодня в 12:09:05
post Проблема с циклами While
[AutoIt для новичков] Andeangl Сегодня в 11:03:15
post Уроки программирования и автоматизации посредством AutoIt для чайников
[Инструменты и помощь по AutoIt] aak Сегодня в 09:41:45
post Re: Как спарсить ссылку внутри тега "td" определенного класса
[Регулярные выражения и прочее] eropov Сегодня в 05:27:00
post Re: Ограничение доступа(блокировка) к компьютеру если не вставлен носитель с ключом
[AutoIt для новичков] Pat4005 Сегодня в 01:02:55
post Re: Развитие русской справки
[Инструменты и помощь по AutoIt] CreatoR Сегодня в 00:02:03
post Re: Развитие русской справки
[Инструменты и помощь по AutoIt] CreatoR Май 19, 2012, 23:55:37

* Пользователи онлайн
  • Dot Гостей: 95
  • Dot Скрыт: 1
  • Dot Пользователей: 27
  • Dot Пользователи Online: