Das Forentreffen 2018 findet am 20./21. April in Dresden statt. Weitere Infos hier
Anmeldungen zum Forentreffen 2018 sind auf der Anmeldeseite möglich
Zur Homepage des Deutschsprachige Xbase-Entwickler e. V.
Xbase++-Wiki des Deutschsprachige Xbase-Entwickler e. V.

DiskSize() ? [erledigt]

Fragen rund um diverse Windows-Versionen, ihr Verhalten unter Xbase++ und den Umgang mit der API

Moderator: Moderatoren

Antworten
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 10738
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

DiskSize() ? [erledigt]

Beitrag von AUGE_OHR » Mi, 29. Okt 2014 0:27

hi,

ich möchte die Gesamt Grösse einer HDD / SDD oder USB Stick bestimmen.
mit DiskSpace() bekomme ich ja den freien Platz ... aber nicht die gesamte Grösse.

Code: Alles auswählen

FUNCTION DiskSpaceFree(cDrive)                   // "C:\"
LOCAL nRetVal
LOCAL lpSectorsPerCluster     := SPACE(8)
LOCAL lpBytesPerSector        := SPACE(8)
LOCAL lpNumberOfFreeClusters  := SPACE(8)            // -> DiskSpace()
LOCAL lpTotalNumberOfClusters := SPACE(8)            // -> Total Disk Size ...

  nRetVal:=DllCall( "Kernel32.dll" , DLL_STDCALL, "GetDiskFreeSpaceExA",;
                        cDrive                  ,;
                        @lpSectorsPerCluster    ,;
                        @lpBytesPerSector       ,;
                        @lpNumberOfFreeClusters ,;
                        @lpTotalNumberOfClusters   )

RETURN IF(nRetVal=0,-1,Bin2li(lpTotalNumberOfClusters))
soweit so gut ...
aber wenn ich die HDD / SDD partitioniert (C:,D:) habe ... wie bekomme ich dann die Grösse von "C:\" ... hm :-k

p.s. keine WMI (Win32_DiskDrive) oder XbTool (DiskTotal) Lösung erwünscht.
gruss by OHR
Jimmy

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 10738
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: DiskSize() ? [erledigt]

Beitrag von AUGE_OHR » Mi, 29. Okt 2014 5:33

gruss by OHR
Jimmy

Antworten