Seite 1 von 2

DirectoryEntrySize() byte in mb umrechnen?

Verfasst: 24.03.2005 11:27
von Pure-r-Freak
ich würde gerne die größe der dateien in Mb oder Kb anzeigen aber wie mach ich das am besten?
gibts schon ein befehl, der das erledigt oder wie muss man das umrechnen.


:o

Verfasst: 24.03.2005 11:57
von zigapeda
Ich habe jetzt nicht genauer nachgeschaut aber wenn der Befehl die größe in byte ausgibt musst du die bytes einfach durch 1024 teilen um kilobytes zu erhalten, nochmal durch 1024 um megabyte zu erhalten usw. also immer durch 1024 um die höhere stufe zu erhalten auser bei bit: bit durch 8 wird byte. umgekehrt musst du dann statt teilen multiplizieren.

mfg zigapeda

Verfasst: 24.03.2005 12:14
von ts-soft
>> auser bei bit: bit durch 8 wird byte
Sicher ?

Verfasst: 24.03.2005 12:25
von Pure-r-Freak
ok so halbwegs funzt es
aber bei dateien unter
1 mb zigt er null an. wie kann ich das ändern?

Code: Alles auswählen


OpenConsole()

Ok=ExamineDirectory(0,"c:\downloads","") 
  If Ok=0 
    PrintN(" -   Verzeichnis kann nicht durchsucht werden!") 
  EndIf 

 Repeat
         FileType = NextDirectoryEntry()
         If FileType = 1
         FileName$ = DirectoryEntryName()
         FileName$ = "      "+FileName$ 
         size = DirectoryEntrySize() / 1024 / 1024
         PrintN(" - "+(FileName$)+"   Groesse:  "+Str(size)+" Mb") 
         size = 0
         FileName$=""
         
        ElseIf FileType = 2 ; Directory type
         FileName$ = DirectoryEntryName()
         FileName$ = "(DIR) "+FileName$  
         PrintN(" - "+(FileName$)+"") 
         
         FileName$=""
         EndIf
          
Until FileType = 0 


 Input()


Verfasst: 24.03.2005 12:39
von ts-soft

Code: Alles auswählen

OpenConsole()

Ok=ExamineDirectory(0,"E:\TS-Temp\sdlBASIC\","")
  If Ok=0
    PrintN(" -   Verzeichnis kann nicht durchsucht werden!")
  EndIf

 Repeat
         FileType = NextDirectoryEntry()
         If FileType = 1
         FileName$ = DirectoryEntryName()
         FileName$ = "      "+FileName$
         size = DirectoryEntrySize()
         If size < 1024
           PrintN(" - "+(FileName$)+"   Groesse:  "+Str(size)+" Bytes")
         ElseIf size < 1024 * 1024
          PrintN(" - "+(FileName$)+"   Groesse:  "+Str(size / 1024)+" KBytes")
         Else
          PrintN(" - "+(FileName$)+"   Groesse:  "+Str(size /1024 / 1024)+" MBytes")
         EndIf
         size = 0
         FileName$=""
         
        ElseIf FileType = 2 ; Directory type
         FileName$ = DirectoryEntryName()
         FileName$ = "(DIR) "+FileName$ 
         PrintN(" - "+(FileName$)+"")
         
         FileName$=""
         EndIf
         
Until FileType = 0


Input()

Verfasst: 24.03.2005 12:45
von Pure-r-Freak
ja danke

:allright: :bounce:

Verfasst: 24.03.2005 12:49
von ts-soft
Das schaffste hoffentlich nächstesmal allein ! Oder, war doch nicht schwer :allright:

Verfasst: 24.03.2005 13:44
von zigapeda
@ts-soft ja bit duch 8 = byte beispiel: ein byte hat 8 bit => 1000 byte haben 8000 bit. 8000 / 8 = 1000

Verfasst: 24.03.2005 13:49
von ts-soft
Ich glaub das Bit wird böse, wenn Du es durch 8 Teilst :mrgreen:

Verfasst: 24.03.2005 14:11
von zigapeda
nur die anzahl der bit durch 8 um die anzahl an byte rauszufinden.