
26/03/2006, 21:59
|
![Avatar de [EX3]](http://static.forosdelweb.com/customavatars/avatar131179_1.gif) | | | Fecha de Ingreso: marzo-2006 Ubicación: Fuenlabrada, Madrid
Mensajes: 203
Antigüedad: 19 años, 1 mes Puntos: 1 | |
Las fechas de ultimo acceso, modificacion y de creacion las puedes sacar mediante el API de Windows. Esto es parte del codigo que uso en uno de mis programas que recogeria dicha informacion de un archivo:
Código:
Option Explicit
Private Const MAX_PATH = 260
Private Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type
Private Type WIN32_FIND_DATA
dwFileAttributes As Long
ftCreationTime As FILETIME
ftLastAccessTime As FILETIME
ftLastWriteTime As FILETIME
nFileSizeHigh As Long
nFileSizeLow As Long
dwReserved0 As Long
dwReserved1 As Long
cFileName As String * MAX_PATH
cAlternate As String * 14
End Type
Private Type SYSTEMTIME
wYear As Integer
wMonth As Integer
wDayOfWeek As Integer
wDay As Integer
wHour As Integer
wMinute As Integer
wSecond As Integer
wMilliseconds As Integer
End Type
Private Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindClose Lib "kernel32" (ByVal hFindFile As Long) As Long
Private Declare Function FileTimeToLocalFileTime Lib "kernel32" (lpFileTime As FILETIME, lpLocalFileTime As FILETIME) As Long
Private Declare Function FileTimeToSystemTime Lib "kernel32" (lpFileTime As FILETIME, lpSystemTime As SYSTEMTIME) As Long
Private Declare Function LocalFileTimeToFileTime Lib "kernel32" (lpLocalFileTime As FILETIME, lpFileTime As FILETIME) As Long
Private Declare Function SystemTimeToFileTime Lib "kernel32" (lpSystemTime As SYSTEMTIME, lpFileTime As FILETIME) As Long
Private Sub Form_Load()
Dim strFile As String, FileName As String, Path As String
Dim fHandle As Long
Dim FileInfo As WIN32_FIND_DATA
Dim LastAccess As Double, Created As Double, Modified As Double
Me.AutoRedraw = True
'Introducimos una ruta y nombre de archivo:
strFile = InputBox("Ruta y nombre del archivo:")
If strFile = vbNullString Then Exit Sub
'Obtenemos la informacion del archivo:
fHandle = FindFirstFile(strFile, FileInfo)
Call FindClose(fHandle)
'Obtenemos el nombre y la ruta del archivo por separado:
FileName = Right$(strFile, Len(strFile) - InStrRev(strFile, "\"))
Path = Left$(strFile, Len(strFile) - Len(FileName))
With FileInfo
'Formateamos los datos:
LastAccess = FileTimeToDouble(.ftLastAccessTime, True)
Created = FileTimeToDouble(.ftCreationTime, True)
Modified = FileTimeToDouble(.ftLastWriteTime, True)
End With
'Mostramos los datos:
Print "Archivo: " & FileName
Print "Ruta de acceso: " & Path
Print "Tamaño: " & FormatFileSize(FileInfo.nFileSizeLow)
Print "Ultimo acceso: " & FormatFileDate(LastAccess)
Print "Creado: " & FormatFileDate(Created)
Print "Modificado: " & FormatFileDate(Modified)
End Sub
'Convierte los campos de una estructura FILETIME a un valor de tipo Double:
Private Function FileTimeToDouble(ftUTC As FILETIME, Localize As Boolean) As Double
Dim ft As FILETIME
Dim st As SYSTEMTIME
Dim d As Double
Dim t As Double
If Localize Then
Call FileTimeToLocalFileTime(ftUTC, ft)
Else
ft = ftUTC
End If
Call FileTimeToSystemTime(ft, st)
FileTimeToDouble = DateSerial(st.wYear, st.wMonth, st.wDay) + _
TimeSerial(st.wHour, st.wMinute, st.wSecond)
End Function
'Devuelve una cadena de texto con la fecha y hora formateada:
Public Function FormatFileDate(ByVal dt As Double) As String
FormatFileDate = Format(dt, "long date") & " " & _
Format(dt, "long time")
End Function
'Devuelve una cadena de texto con la cantidad de bytes formateada a la medida adecuada:
Public Function FormatFileSize(ByVal Size As Long) As String
Dim sRet As String
Const KB& = 1024
Const MB& = KB * KB
If Size < KB Then
sRet = Format(Size, "#,##0") & " bytes"
Else
Select Case Size \ KB
Case Is < 10
sRet = Format(Size / KB, "0.00") & " KB"
Case Is < 100
sRet = Format(Size / KB, "0.0") & " KB"
Case Is < 1000
sRet = Format(Size / KB, "0") & " KB"
Case Is < 10000
sRet = Format(Size / MB, "0.00") & " MB"
Case Is < 100000
sRet = Format(Size / MB, "0.0") & " MB"
Case Is < 1000000
sRet = Format(Size / MB, "0") & " MB"
Case Is < 10000000
sRet = Format(Size / MB / KB, "0.00") & " GB"
End Select
sRet = sRet & " (" & Format(Size, "#,##0") & " bytes)"
End If
FormatFileSize = sRet
End Function La resolucion de una imagen ya dependeria de su formato. Conociendo su formato se pueden leer los bytes que contienen la informacion de anchura, altura y bits por pixel del color.
Salu2...
__________________ Proyecto dx_lib32 (http://dxlib32.se32.com) Libreria DLL ActiveX para el desarollo de juegos y programas multimedia en Visual Basic 6.0 con la potencia de DirectX
Dice un dicho que "el que calla otorga". En internet tenemos otro que dice "nunca alimentes a un troll" que viene a decir "dejale hablar solo que se ya se cansara de incordiar". Solo los necios creen tener la razon con la ultima palabra. |