Что нового

Как создать массив?

winkot

Новичок
Сообщения
55
Репутация
0
Для контроля за изменением файлов надо создать массив (двумерный) и занести туда данные о названиях файлов и времени их изменения. Как это лучше сделать? Сделать массив только с именами файлов не сложно, с помощью _FileListToArray. А вот как добавить туда соответствующее время изменения файла?
 

Prog

Продвинутый
Сообщения
484
Репутация
57
Код:
$CountFiles = 10
$aFiles[$CountFiles][2]
Где $CountFiles - число файлов.
В 0 индекс 2 измерения записывайте имя файла, а в 1 индекс - время изменения.

В других ЯП для таких целей обычно используют массив или список структур (значительно повышает читаемость кода и уменьшает вероятность допустить ошибку), но к сожалению AutoIt это не поддерживает.
 
Автор
W

winkot

Новичок
Сообщения
55
Репутация
0
А как же в массив завести время изменения всех фалов?
 
Последнее редактирование:

InnI

AutoIT Гуру
Сообщения
4,784
Репутация
1,377
Код:
#include <File.au3>
#include <Array.au3>

$aFiles = _FileListToArray("c:\windows", "*", $FLTA_FILES, True)
Dim $aData[$aFiles[0]][2]
For $i = 0 To $aFiles[0] - 1
  $aData[$i][0] = $aFiles[$i + 1]
  $aData[$i][1] = FileGetTime($aFiles[$i + 1], 0, 1)
Next
_ArrayDisplay($aData)
 
Автор
W

winkot

Новичок
Сообщения
55
Репутация
0
Спасибо InnI ! Это то, что надо. Но почему то в Справке для _FileListToArray указываются совершенно другие ключи. Почему так?
 

Oki

Осваивающий
Сообщения
288
Репутация
36
Но почему то в Справке для _FileListToArray указываются совершенно другие ключи.
Это не другие ключи. В файле "File.au3" есть #include "FileConstants.au3", а в файле "FileConstants.au3" в свою очередь описаны глобальные константы.
Код:
; Indicates _FileListToArray modes
Global Const $FLTA_FILESFOLDERS = 0
Global Const $FLTA_FILES = 1
Global Const $FLTA_FOLDERS = 2
Справка на английском языке даёт и названия констант, и их величины.
 
Автор
W

winkot

Новичок
Сообщения
55
Репутация
0
Я правильно понимаю, что если надо проверять на изменения файлы во вложенных папках, то надо с помощью _FileListToArray определить наличие и пути вложенных папок и потом описанным выше способом определять изменения в файлах? Попроще варианта нет?
 
Верх