Что нового

Сортировка файлов по дате изменения и создание Checkbox

paa13

Новичок
Сообщения
40
Репутация
1
Здравствуйте! Пытаюсь создать Checkbox'ы из определенных файлов в папке с выводом в отсортированном виде по дате (сначала самые новые) для дальнейшего выбора необходимых файлов и копирования.

Вот что у меня получилось, не пойму как сюда прикрутить сортировку и возможно ли вообще...

Код:
$myFolder = 'C:\Test'
      $search = FileFindFirstFile($myFolder & '\*.*')

        
        For $i = 1 To 35
            
          $file = FileFindNextFile($search)        
          $aTime = FileGetTime($myFolder & '\' & $file);

          _DateDiff('D', $aTime[0] & '/' & $aTime[1] & '/' & $aTime[2], _NowCalc())
          $data = $aTime[2] & "/" & $aTime[1] & "/" & $aTime[0]

          GUICtrlCreateCheckbox($file & " (" & $data & ")", 8, 8+$i*18, 150, 19) 

        Next
 

joiner

Модератор
Локальный модератор
Сообщения
3,470
Репутация
609
Составляете массив из файлов с датой. Потом функция сортировки массива и выводите в чекбоксы
 
Автор
P

paa13

Новичок
Сообщения
40
Репутация
1
В том то и дело что не получается соединить это воедино, вот такую функцию сортировки я нашел
Может есть какой пример? или может есть попроще способ какой?

Код:
Local $aArray = _FileListToArray("C:\Test", "*.*", $FLTA_FILES, True)
    _ArrayColInsert($aArray, 1)

 For $i = 1 To $aArray[0][0]
   $aArrayDate = FileGetTime($aArray[$i][0], $FT_MODIFIED, $FT_ARRAY )
   $aArray[$i][1] = _DateDiff("h", $aArrayDate[0] & "/" & $aArrayDate[1] & "/" & $aArrayDate[2],_NowCalc())
 Next

   _ArraySort($aArray,0,0,0,1)    
   _ArrayDisplay($aArray)
 

joiner

Модератор
Локальный модератор
Сообщения
3,470
Репутация
609
А так сортирует верно?
Код:
Local $aArray = _FileListToArray("C:\Test", "*.*", $FLTA_FILES, True)
    _ArrayColInsert($aArray, 1)

 For $i = 1 To $aArray[0][0]
   $aArrayDate = FileGetTime($aArray[$i][0])
   $aArray[$i][1] = $aArrayDate[0] & $aArrayDate[1] & $aArrayDate[2] & $aArrayDate[3] & $aArrayDate[4] & $aArrayDate[5]
;~     ;или
;~     $aArrayDate = FileGetTime($aArray[$i][0], 0, 1)
;~     $aArray[$i][1] = $aArrayDate
 Next

   _ArraySort($aArray,0,0,0,1)
   _ArrayDisplay($aArray)
 
Последнее редактирование:

joiner

Модератор
Локальный модератор
Сообщения
3,470
Репутация
609
Дальше в цикле перебираете элементы массива и создаете чекбоксы.
Если вы не знаете как, то пишите в стол заказов
 
Верх