Newsgroup: it.comp.lang.visual-basic
Titolo: Come si possono ricavare informazioni su un file?

Salve,
come da subject, come faccio per prendere informazioni su un file
specifico? In particolare mi servirebbe sapere:
- dimensioni
- data ultima modifica (e creazione se possibile)
e credo basta...chi mi sa dire qualcosa?
(per la gioia di Pal) Aspetto news, grazie.
Saluti, ciao ciao :))

 Saluti, ciao ciao :))
ognuno ha le sue gioie... :)




 (e creazione se possibile)
Private Type FILETIME
        dwLowDateTime As Long
        dwHighDateTime As Long
      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 Const GENERIC_READ = &H80000000
Private Const FILE_SHARE_READ = &H1
Private Const OPEN_EXISTING = 3
Private Const INVALID_HANDLE_VALUE = -1
Private Declare Function GetFileTime Lib "kernel32" (ByVal hFile As Long,
lpCreationTime As FILETIME, lpLastAccessTime As FILETIME, lpLastWriteTime As
FILETIME) As Long
Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" _
        (ByVal lpFileName As String, _
         ByVal dwDesiredAccess As Long, _
         ByVal dwShareMode As Long, _
         ByVal lpSecurityAttributes As Long, _
         ByVal dwCreationDisposition As Long, _
         ByVal dwFlagsAndAttributes As Long, _
         ByVal hTemplateFile As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long)
As Long
Private Declare Function FileTimeToSystemTime Lib "kernel32" (lpFileTime As
FILETIME, lpSystemTime As SYSTEMTIME) As Long
? Public Declare Function SystemTimeToFileTime Lib "kernel32" (lpSystemTime
As SYSTEMTIME, lpFileTime As FILETIME) As Long
Public Function GetDateCreation(sFile As String) As Date
Dim fHnd As Long
Dim dtCreation As FILETIME
Dim dtModify As FILETIME
Dim dtAccess As FILETIME
Dim st As SYSTEMTIME
fHnd = CreateFile(sFile, GENERIC_READ, FILE_SHARE_READ, 0, OPEN_EXISTING, 0,
0)
GetFileTime fHnd, dtCreation, dtAccess, dtModify
CloseHandle fHnd
FileTimeToSystemTime dtCreation, st
GetDateCreation = CDate(st.wDay & "/" & st.wMonth & "/" & st.wYear & " " &
st.wHour & ":" & st.wMinute & ":" & st.wSecond)
End Function

 Saluti, ciao ciao :))
ancora una volta, basta utilizzare la libreria Microsoft Scripting Runtime
(scrrun.dll);
aggiungila tra le referenze del tuo progetto e scrivi qualcosa del genere:
    Dim fso As FileSystemObject
    Dim fil As File
    Set fso = New FileSystemObject
    Set fil = fso.GetFile("c:\Programmi\Adobe\Acrobat
4.0\Resource\CMap\AdobeFnt.lst")
    Debug.Print fil.Path
    Debug.Print fil.Name
    Debug.Print fil.ShortPath
    Debug.Print fil.ShortName
    Debug.Print fil.DateCreated
    Debug.Print fil.DateLastAccessed
    Debug.Print fil.DateLastModified
    Debug.Print fil.Size
    Debug.Print fil.Type
    ' ecc.
ciao

aggiungila tra le referenze del tuo progetto e scrivi qualcosa del genere:
Grande!! Ho provato, riesco a prendere parecchie informazioni utili;
una domanda, in questo modo, aggiungendo questa libreria tra le
referenze (che non so che sia) cosa ho fatto? Ho aggiunto una dll al
mio progetto?
Aspetto news, grazie.
Saluti, ciao ciao.


si, ricordati di includerla nell'insieme di file da distribuire e fai in
modo di farla registrare sul PC target (solitamente i programmi per fare
pacchetti di installazione si accorgono da soli di questa esigenza... anche
il "Creazione guidata pacchetti di installazione" lo fa)
ciao