Hallo,
wie kann ich mit PureBasic beispielsweise die Kapazität einer eingelegten CD herausfinden und wie viel Platz auf dem Medium schon belegt ist?
Danke schon mal im Voraus,
Daniel
Laufwerkskapazitäten
Code: Alles auswählen
Debug GetDiskFreeSpaceEx_("C:",FreeBytesAvailable.ULARGE_INTEGER,TotalNumberOfBytes.ULARGE_INTEGER,TotalNumberOfFreeBytes.ULARGE_INTEGER)
Debug FreeBytesAvailable\LowPart
Debug FreeBytesAvailable\HighPart
Debug TotalNumberOfBytes\LowPart
Debug TotalNumberOfBytes\HighPart
Debug TotalNumberOfFreeBytes\LowPart
Debug TotalNumberOfFreeBytes\HighPart

[url=irc://irc.freenode.org/##purebasic.de]irc://irc.freenode.org/##purebasic.de[/url]
wenn es nur um eine cdrom geht, dann kann man ruhig longs verwenden. problem ist, dass nicht die cd selber untersucht wird, sondern das laufwerk.
da hilft wohl nur noch, von einer 700er auszugehen und den belegten speicher selber zusammenzuzählen.
Code: Alles auswählen
*Buffer=AllocateMemory($FF)
For i=0 To GetLogicalDriveStrings_($FF,*Buffer) Step 4
CDROM.s=PeekS(*Buffer+i,4)
If GetDriveType_(@CDROM)=#DRIVE_CDROM
Break
EndIf
Next
GetDiskFreeSpaceEx_(CDROM,0,@TotalSpace,@FreeSpace)
Debug CDROM
Debug Str(FreeSpace)+" Bytes free"
Debug Str(TotalSpace)+" Bytes total"
LongValuesString
Wer will, kann sich hier gerne eine PureLibrary herunterladen (14KB) die diese Aufgabe erledigt.
Dabei sind auch die großen Zahlen kein Problem, die Library liefert Strings. Auch die Ermittlung der Dateigröße von Dateien jenseits 2 GB ist kein Problem
Dokumentierte Beispiele sind dabei.
Dabei sind auch die großen Zahlen kein Problem, die Library liefert Strings. Auch die Ermittlung der Dateigröße von Dateien jenseits 2 GB ist kein Problem
Dokumentierte Beispiele sind dabei.