DirectoryEntrySize() byte in mb umrechnen?

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Pure-r-Freak
Beiträge: 74
Registriert: 08.03.2005 13:40

DirectoryEntrySize() byte in mb umrechnen?

Beitrag 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
Benutzeravatar
zigapeda
Beiträge: 1753
Registriert: 06.03.2005 17:22
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag 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
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

>> auser bei bit: bit durch 8 wird byte
Sicher ?
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Pure-r-Freak
Beiträge: 74
Registriert: 08.03.2005 13:40

Beitrag 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()

Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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()
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
Pure-r-Freak
Beiträge: 74
Registriert: 08.03.2005 13:40

Beitrag von Pure-r-Freak »

ja danke

:allright: :bounce:
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Das schaffste hoffentlich nächstesmal allein ! Oder, war doch nicht schwer :allright:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
zigapeda
Beiträge: 1753
Registriert: 06.03.2005 17:22
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag von zigapeda »

@ts-soft ja bit duch 8 = byte beispiel: ein byte hat 8 bit => 1000 byte haben 8000 bit. 8000 / 8 = 1000
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Ich glaub das Bit wird böse, wenn Du es durch 8 Teilst :mrgreen:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
zigapeda
Beiträge: 1753
Registriert: 06.03.2005 17:22
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag von zigapeda »

nur die anzahl der bit durch 8 um die anzahl an byte rauszufinden.
Antworten