Home   Artículos   Recursos   Foros   
Artíclos recientes publicados en Latindevelopers:

Visual C++: NSDoubleEdit: Un control para el manejo de números decimales en Visual C++.
Visual C++: Implementando una Calculadora en Visual C++
Visual C++: CCommandLine: Una clase para el uso de la linea de comando
Visual C++: Una clase para el manejo del Registro


Control de tamano de un directorio.

Visual Formularios, MDI, Módulos, Class, DataReports, Rutime y mas..

Moderador: jAngel

Control de tamano de un directorio.

Notapor ryanortegarios el Lun Jun 20, 2005 8:37 am

:D Que tal.

Estoy tratando de hacer un codigo en VB6.0 que evalue el tamano de un directorio y que borre todos los archivos mas viejos hasta llegar al tamano deseado.
Hasta ahora no encuentro la propiedad que me devuelva el tamano del directorio.
Ryan O.R.
ryanortegarios
Novato
Novato
 
Mensajes: 11
Registrado: Mar Mar 01, 2005 2:24 pm

Notapor ryanortegarios el Mar Jun 28, 2005 8:27 am

:wink: Que tal

Aca coloco parte del código que he encontrado y usado para realizar el proyecto todas estan hechas a manera de funciones:

Public Const MAX_PATH = 260
Public Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type
Public 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
Declare Function FindFirstFile Lib "kernel32" _
Alias "FindFirstFileA" (ByVal lpFileName As String, _
lpFindFileData As WIN32_FIND_DATA) As Long
Declare Function FindNextFile Lib "kernel32" _
Alias "FindNextFileA" (ByVal hFindFile As Long, _
lpFindFileData As WIN32_FIND_DATA) As Long
Declare Function FindClose Lib "kernel32" _
(ByVal hFindFile As Long) As Long



'Esta rutina aroja el tamano de un directorio.

Public Function SizeOf(ByVal DirPath As String) As Double
Dim hFind As Long
Dim fdata As WIN32_FIND_DATA
Dim dblSize As Double
Dim sName As String
Dim x As Long
On Error Resume Next
x = GetAttr(DirPath)
If Err Then SizeOf = 0: Exit Function
If (x And vbDirectory) = vbDirectory Then
dblSize = 0
Err.Clear
sName = Dir$(endSlash(DirPath) & "*.*", vbSystem Or vbHidden Or vbDirectory)
If Err.Number = 0 Then
hFind = FindFirstFile(endSlash(DirPath) & "*.*", fdata)
If hFind = 0 Then Exit Function
Do
If (fdata.dwFileAttributes And vbDirectory) = vbDirectory Then
sName = Left$(fdata.cFileName, InStr(fdata.cFileName, vbNullChar) - 1)
If sName <> "." And sName <> ".." Then
dblSize = dblSize + SizeOf(endSlash(DirPath) & sName)
End If
Else
dblSize = dblSize + fdata.nFileSizeHigh * 65536 + fdata.nFileSizeLow
End If
DoEvents
Loop While FindNextFile(hFind, fdata) <> 0
hFind = FindClose(hFind)
End If
Else
On Error Resume Next
dblSize = FileLen(DirPath)
End If
SizeOf = dblSize
End Function
'To delete the file press the button.
'Insert the following code to your form:
'Esta rutina borra un archivo.
Public Function deleteFile(directory As String) As Boolean
Dim Arch As String
Dim AuxStr1 As String
directory = Form1.Text1
Arch = Form1.Text2.Text
AuxStr1 = endSlash(directory) + Arch
If (askForFile(AuxStr1)) Then
Kill (AuxStr1)
deleteFile = True
'Form1.Text3.Text = Arch
Else
deleteFile = False
'Form1.Text3.Text = Arch + " does not exist"
End If
End Function
'Esta función verifica que el string termine en un Slash.
Public Function endSlash(ByVal PathIn As String) As String
If Right$(PathIn, 1) = "\" Then
endSlash = PathIn
Else
endSlash = PathIn & "\"
End If
End Function

'Esta rutina verifica que un archivo exista.
Public Function askForFile(FilePath As String) As Boolean
If Dir$(FilePath) <> "" Then
askForFile = True
'MsgBox ("The file exist")
Else
askForFile = False
'MsgBox ("The file does not exist")
End If
End Function
'Esta rutina aroja la fecha de la última modificación de un archivo.

Public Function fileDate(FilePath As String) As String

' Assume TESTFILE was last modified on February 12, 1993 at 4:35:47 PM.
' Assume English/U.S. locale settings.
If (askForFile(FilePath)) Then
fileDate = FileDateTime(FilePath) ' Returns "2/12/93 4:35:47 PM".
Else
fileDate = "NULL"
End If

End Function
Ryan O.R.
ryanortegarios
Novato
Novato
 
Mensajes: 11
Registrado: Mar Mar 01, 2005 2:24 pm


Volver a Visual Basic / Visual Basic .NET

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados