Probier doch mal GetDiskFreeSpace
Announcement
Collapse
No announcement yet.
wie feststellen wann plattenplatz wenig wird???
Collapse
X
-
wie feststellen wann plattenplatz wenig wird???
hallo,
<br>
<br>
mein prog schreibt automatisch dateien, nun möchte ich aber eine <br>möglichkeit, rechtzeitig zu erfahren, wann der plattenplatz knapp wird<br>
um darauf reagieren zu können, kenn jemand ne möglichkeit, wie ich <br>
dies in erfahrung bringen kann (evtl. mit einer winsows-message)???
<br>
mfg
ake
-
Hi,
hier ein kleines Beispiel. Als Schmankl kannst Du die Grenzwerte für eine Warnung und ein Zeitintervall der Abfrage in einer INI-Datei hinterlegen und eine Prüfung vornehmen. Als Parameter gibst Du das zu kontrollierende Laufwerk an.
Ich hab das ganze dann in einen Timer eingehängt.
Gruß Andreas
<PRE>
function aktuelleKapazitaet(a_Laufwerk:string):boolean;
var
lwa:string;
lw:char;
lw_nr, grenzwert, intervall:integer;
bytefree, bytevoll: integer;
byteproz :double;
iniparam:TiniFile;
begin
Iniparam:=TIniFile.Create('MyINI.INI');
grenzwert:= iniparam.ReadInteger('KAP','KapGrenzwert',100);
intervall:= iniparam.ReadInteger('KAP','KapIntervall',10);
Iniparam.free;
if grenzwert > 0 then
begin
kap_timer.Interval:=intervall * 60000;
lwa:=a_Laufwerk;
if pos(':',lwa) > 0 then
begin
lwa:=copy(lwa,1,1);
lw:=char(lwa[1]);
lw_nr:=ord(lw)-64;
end
else
lw_nr:=0;
bytefree:=diskfree(lw_nr) div (1024*1024);
bytevoll:=disksize(lw_nr) div (1024*1024);
byteproz := bytefree / bytevoll * 100;
showmessage( 'Frei: ' + formatfloat('##0.##',byteproz) + ' % bei: ' + floattostr(bytefree) + '/' + floattostr(bytevoll) + ' Mbyte');
if grenzwert > bytefree then
messagedlg('Achtung: Die Laufwerkskapazität liegt unter dem eingestelltem Grenzwert: ' + inttostr(grenzwert) + ' MB. Bitte benachrichtigen Sie Ihren Systemverwalter.',mtWarning ,[mbOK],0);
end;
result:=true;
end;
</PRE<
Comment
Comment