Speicherbedarf bei Dateien mit Attribut A

  • 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?

    • 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 :D

    Beispiel:

    Spoiler anzeigen
    [autoit][/autoit] [autoit][/autoit] [autoit]

    Local $size = 0, $count = 0, $kb, $mb, $gb
    _Liste("C:")

    [/autoit] [autoit][/autoit] [autoit]

    $kb = round($size / 1024,2)
    $mb = round($size / 1048576,2)
    $gb = round($size / 1073741824,2)

    [/autoit] [autoit][/autoit] [autoit]

    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 )
    Func _Liste($pfad)
    If Not FileExists($pfad) Then
    SetError(999)
    Return
    EndIf
    $suche = FileFindFirstFile($pfad & "\*")
    While 1
    $datei = FileFindNextFile($suche)
    If @error Then ExitLoop

    [/autoit] [autoit][/autoit] [autoit]

    $dateipfad = $pfad & "\" & $datei
    If StringInStr(FileGetAttrib($dateipfad), "D") Then
    _Liste($dateipfad)
    ElseIf StringInStr(FileGetAttrib($dateipfad), "A") Then
    $count +=1
    $size += FileGetSize($dateipfad)
    EndIf
    WEnd
    EndFunc

    [/autoit]

    Mfg
    Jens (McPoldy)

    Twitter: jkroeger

    Denn die Dinge, die wir erst lernen müssen, bevor wir sie tun, lernen wir beim Tun.(Aristoteles)

  • 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
    $laufwerke = DriveGetDrive("FIXED")

    [/autoit] [autoit][/autoit] [autoit]

    For $int = 1 To $laufwerke[0]
    _Liste($laufwerke[$int])
    Next

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    $kb = round($size / 1024,2)
    $mb = round($size / 1048576,2)
    $gb = round($size / 1073741824,2)

    [/autoit] [autoit][/autoit] [autoit]

    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 )
    Func _Liste($pfad)
    If Not FileExists($pfad) Then
    SetError(999)
    Return
    EndIf
    $suche = FileFindFirstFile($pfad & "\*")
    While 1
    $datei = FileFindNextFile($suche)
    If @error Then ExitLoop

    [/autoit] [autoit][/autoit] [autoit]

    $dateipfad = $pfad & "\" & $datei
    If StringInStr(FileGetAttrib($dateipfad), "D") Then
    _Liste($dateipfad)
    ElseIf StringInStr(FileGetAttrib($dateipfad), "A") Then
    $count +=1
    $size += FileGetSize($dateipfad)
    EndIf
    WEnd
    EndFunc

    [/autoit]

    Mfg
    Jens (McPoldy)

    Twitter: jkroeger

    Denn die Dinge, die wir erst lernen müssen, bevor wir sie tun, lernen wir beim Tun.(Aristoteles)