Что нового

[Файловая система] поочередное открытие файлов

ZeVSalt

Я не лупоглазый, это прищур такой !
Сообщения
136
Репутация
0
Здравствуйте господа.
Имеется: сбор отчетов ПК из AIDA64 которые (компьютеры) именуются 001-ААА-001 и.т.д получается дерево папок вида
001\ААА\001
001\ААА\002
...
001\ААА\050

001\ВВВ\001
001\ВВВ\002
...
001\ВВВ\050
компьютеры при каждой перезагрузке присылают отчеты на сервер, в итоге имеем дерево папок вида 001\ААА\001\01-01-2015\
корневых папок от 001 до 010, в них дочерние папки от ААА и до ZZZ, соответственно в них папки от 001 до 050, в каждой из которых папки именованые по дате 01-01-2015 в конечных папках лежат файлы именованые по времени 06-00-00.csv
необходимо в каждой из папок вида 001 выбрать последнюю по времени папку, а из неё последний по времени файл.
Натолкните на мысль, как это сделать?
 
Автор
ZeVSalt

ZeVSalt

Я не лупоглазый, это прищур такой !
Сообщения
136
Репутация
0
В чем ошибка?

Код:
Dim $box[3]
$box[0] = "AAA"
$box[1] = "BBB"
$box[2] = "CCC"

For $i = 0 To 2 Step 1
$x = $box[i]
$LongName = FileGetLongName (@ScriptDir & "\Report_PC\004\" & $x & "\" & "0" & $i)


MsgBox (1, "", $x)

Next
 
Автор
ZeVSalt

ZeVSalt

Я не лупоглазый, это прищур такой !
Сообщения
136
Репутация
0
Спасибо помогло.
получилось так :
Код:
Dim $box[3]
$box[0] = "AAA"
$box[1] = "BBB"
$box[2] = "CCC"

For $i = 0 To 2 Step 1
$x = $box[$i]
$m = 0
While $m < 50
	$m = $m+1

$LongName = FileGetLongName (@ScriptDir & "\Report_PC\004\" & $x & "\" & "0" & $m)

MsgBox (1, "", $LongName)
;~ Next
WEnd
Next

теперь надо как то сравнить файлы по дате создания, и взять самый свежий
 
Автор
ZeVSalt

ZeVSalt

Я не лупоглазый, это прищур такой !
Сообщения
136
Репутация
0
а когда файлов много, как их сравнить?


Добавлено:
Сообщение автоматически объединено:

чего то опять криво получается (((
Код:
$RealTime = @YEAR & @MON & @MDAY & @HOUR & @MIN & @SEC

Dim $box[3]
$box[0] = "AAA"
$box[1] = "BBB"
$box[2] = "CCC"

For $i = 0 To 2 Step 1
$x = $box[$i]
$m = 0
While $m < 50
	$m = $m+1

$LongName = FileGetLongName (@ScriptDir & "\Report_PC\004\" & $x & "\" & "0" & $m)

$FileTime = FileGetTime ($LongName & ".txt", 1, 1)

If $FileTime < $RealTime Then
MsgBox (1, "", $FileTime)
EndIf

WEnd
Next
 

Cornet

Знающий
Сообщения
41
Репутация
6
если у
ZeVSalt сказал(а):
именованые по дате 01-01-2015
формат MM-DD-YYYY, тогда папку так:
Код:
$folder = @ScriptDir & "\001\AAA\001\"
local $findFile = $folder & "??-??-????"
Local $hSearch = FileFindFirstFile($findFile)
If $hSearch = -1 Then Exit
$maxdate = ""
While 1
	$sFileName = FileFindNextFile($hSearch)
	If @error Then ExitLoop
	$temp = StringRegExpReplace($sFileName,"(\d\d)-(\d\d)-(\d\d\d\d)", "$3$1$2")
	If $temp > $maxdate Then
		$maxdate = $temp
		$maxdateFolderName = $sFileName
	EndIf
	ConsoleWrite($temp & " -maxdate: " & $maxdate & @CRLF)
WEnd
ConsoleWrite("maxdate Folder: " & $folder & $maxdateFolderName & "\" & @CRLF)


если бы формат папок был YYYY-MM-DD, то это была бы последняя найденная папка.
Ну а со временем в имени файла по аналогии.
 
Верх