Autoit3. Funcion para seleccionar el archivo mas actual de un directorio.
Autoit3, Scripts 21 Abril 2008
En ocasiones necesitamos que el programa nos devuelva el fichero mas actual de todos. En mi caso para seleccionar el ultimo backup de un sistema, descomprimirlo y ponerlo disponible.
La función que he utilizado es la siguiente:
C:
-
Func _GetNewestFileName($sPath, $iMode=0) ;$iMode: 0 = Modificado, 1 = Creado, 2 = Accedido
-
Local $sNewestFile = ""
-
Local $sNextFile, $iNewsetFileSize, $iCurrentFileSize
-
Local $hSearch = FileFindFirstFile($sPath & "\" & $Mask)
-
If $hSearch = -1 Then Return SetError(1, 0, -1)
-
-
While 1
-
$sNextFile = FileFindNextFile($hSearch)
-
If @error Then ExitLoop
-
If StringInStr(FileGetAttrib($sPath & "\" & $sNextFile), "D") Then ContinueLoop
-
$iNewsetFileSize = FileGetTime($sPath & "\" & $sNewestFile, $iMode, 1)
-
$iCurrentFileSize = FileGetTime($sPath & "\" & $sNextFile, $iMode, 1)
-
If $sNewestFile = "" Or $iCurrentFileSize> $iNewsetFileSize Then $sNewestFile = $sNextFile
-
WEnd
-
-
FileClose($hSearch)
-
Return $sNewestFile
-
EndFunc
Para llamar a la función utilizo:
C:
-
$Mask="HOSPSURG_*.*" ;la mascara que voy a utilizar
-
$NewsetFileName = _GetNewestFileName("\\vivaldi\Backup_HPS$\respaldo\", 0)
-
MsgBox(64, "Resultado", "Nombre de archivo mas actual: " & $NewsetFileName)
Posts anterior y posterior:
Posts Relacionados:
- Previo: « Extraer msi del Java Runtime Environment
- Siguiente: Vbs Script para hacer copia de seguridad de un fichero. »
Comentarios Recientes