Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Freien Speicherplatz auf einer (Remote-)Festplatte bestimmen (https://www.delphipraxis.net/27448-freien-speicherplatz-auf-einer-remote-festplatte-bestimmen.html)

weisswurst 10. Aug 2004 12:45


Freien Speicherplatz auf einer (Remote-)Festplatte bestimmen
 
Hallo,

ich möchte wissen wieviel Platz auf einem Windowsrechner auf einer bestimmten Platte noch verfügbar ist. Mit 'DiskFree' gehts nicht, da diese Funktion nur mit lokalen Platten arbeitet.

Ich möchte aber den Platz z.B. von \\hostname\c$ abfragen. Weiß wer weiter?

Danke.

Sharky 10. Aug 2004 12:59

Re: Freien Speicherplatz auf einer (Remote-)Festplatte besti
 
Hai weisswurst,

ersteinmal: "Herzlich Willkommen in der Delphi-PRAXIS.

Zitat:

Zitat von weisswurst
....mit 'DiskFree' gehts nicht, da diese Funktion nur mit lokalen Platten arbeitet....

Mit der API-Funktion GetDiskFreeSpaceEx sollte es gehen.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  FreeSpaceAvailable,
  TotalSpace : Int64;
  pfad : String;
begin
  pfad := '\\server\freigabe';
  if GetDiskFreeSpaceEx(PChar(pfad), FreeSpaceAvailable, TotalSpace, nil) then
  begin
    ShowMessage (IntToStr (FreeSpaceAvailable));
  end;
end;

elliot2extreme 10. Aug 2004 13:19

Re: Freien Speicherplatz auf einer (Remote-)Festplatte besti
 
Hallo,

noch eine Möglichkeit wäre das ganze mit WMI zu lösen.

Damit die Programmierhilfe von Delphi auch für die WMI-Interfaces zur Verfügung steht, wird zuerst die Typbibliothek Microsoft WMI Scripting V 1.x Library importiert. Delphi legt dabei auch die VCL-Wrapperkomponenten für WMI an.

Und hier mal das VB.Net Bespiel zum auslesen des Festplattenspeichers:

Code:
1. Assembly System.Management als Referenz zum Projekt hinzufügen  
2. Imports System.Management hinzufügen  
       
Dim aCO As New ConnectionOptions
aCO.Username = "Administrator"
aCO.Password = "sehrgeheim"
Dim aMS As New ManagementScope("\\P4W2K\root\cimv2", aCO)
Dim aOQ As New ObjectQuery("SELECT Caption, FreeSpace FROM Win32_LogicalDisk WHERE DeviceID = ""C:""")
Dim aMAS As New ManagementObjectSearcher(aMS, aOQ)
Dim aObj As ManagementObject
For Each aObj In aMAS.Get()
  MessageBox.Show(aObj.Item("Caption") + aObj.Item("FreeSpace").ToString())
Next
Gruß

weisswurst 10. Aug 2004 13:48

Re: Freien Speicherplatz auf einer (Remote-)Festplatte besti
 
Hallo Stephan,

vielen Dank. Funktioniert.

Grüsse
David


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:31 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz