Hallo, ich möchte gerne den Speicherbedarf aller Dateien auf C: mit dem Dateiattribut A ermitteln. Lässt sich das über ein Array realisieren oder würde der Umfang zu groß sein? Wie gehe ich das am besten an?
Speicherbedarf bei Dateien mit Attribut A
-
- [ offen ]
-
mamcc -
9. Mai 2008 um 20:42 -
Geschlossen -
Erledigt
-
-
- Offizieller Beitrag
Hallo,
willst Du nur wissen wieviel Platz die Datein belegen und/oder willst Du auch die Dateinamen?
-
Tippe das soll für sowas sein, das man sehen kann ob noch genug Platz für ein Backaup ist
Beispiel:
Spoiler anzeigen
[autoit][/autoit] [autoit][/autoit] [autoit]Local $size = 0, $count = 0, $kb, $mb, $gb
[/autoit] [autoit][/autoit] [autoit]
_Liste("C:")$kb = round($size / 1024,2)
[/autoit] [autoit][/autoit] [autoit]
$mb = round($size / 1048576,2)
$gb = round($size / 1073741824,2)MsgBox(64,"Info Archiv Dateien","Anzahl: " & $count & @LF & "Größe (bytes): " & $size & @LF & "Größe (kb): " & $kb & @LF & "Größe (mb): " & $mb & @LF & "Größe (gb): " & $gb )
[/autoit] [autoit][/autoit] [autoit]
Func _Liste($pfad)
If Not FileExists($pfad) Then
SetError(999)
Return
EndIf
$suche = FileFindFirstFile($pfad & "\*")
While 1
$datei = FileFindNextFile($suche)
If @error Then ExitLoop$dateipfad = $pfad & "\" & $datei
[/autoit]
If StringInStr(FileGetAttrib($dateipfad), "D") Then
_Liste($dateipfad)
ElseIf StringInStr(FileGetAttrib($dateipfad), "A") Then
$count +=1
$size += FileGetSize($dateipfad)
EndIf
WEnd
EndFunc -
Danke das ist genau das was ich brauche. Was mache ich aber wenn die Anzahl der Partitionen die untersucht werden unklar ist also mehr als 1?
-
Habs mal so angepasst das über alle Festplatten gesucht wird, USB, DVD, etc. wird nicht berücksichtigt.
Spoiler anzeigen
[autoit]Local $size = 0, $count = 0, $kb, $mb, $gb
[/autoit] [autoit][/autoit] [autoit]
$laufwerke = DriveGetDrive("FIXED")For $int = 1 To $laufwerke[0]
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]
_Liste($laufwerke[$int])
Next$kb = round($size / 1024,2)
[/autoit] [autoit][/autoit] [autoit]
$mb = round($size / 1048576,2)
$gb = round($size / 1073741824,2)MsgBox(64,"Info Archiv Dateien","Anzahl: " & $count & @LF & "Größe (bytes): " & $size & @LF & "Größe (kb): " & $kb & @LF & "Größe (mb): " & $mb & @LF & "Größe (gb): " & $gb )
[/autoit] [autoit][/autoit] [autoit]
Func _Liste($pfad)
If Not FileExists($pfad) Then
SetError(999)
Return
EndIf
$suche = FileFindFirstFile($pfad & "\*")
While 1
$datei = FileFindNextFile($suche)
If @error Then ExitLoop$dateipfad = $pfad & "\" & $datei
[/autoit]
If StringInStr(FileGetAttrib($dateipfad), "D") Then
_Liste($dateipfad)
ElseIf StringInStr(FileGetAttrib($dateipfad), "A") Then
$count +=1
$size += FileGetSize($dateipfad)
EndIf
WEnd
EndFunc