Autor Beitrag
rochus
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 416

Win XP Prof, Fedora Core 4, SuSE 7.0
D7 Ent, D2005 Pers
BeitragVerfasst: Do 25.11.04 17:46 
Hallo.
Ich erstelle in einer Prozedur mehrere Hundert PDF Dateien (je nachdem, wieviele in der Datenbank vorliegen) und diese werden eventuell über einen UNC Pfad auf ein Netzlaufwerk geschrieben. Jetzt kann es natürlich vorkommen, dass die Dateien zu viel Speicher brauchen, als überhaupt auf dem Netzlaufwerk vorhanden ist. Wie kann ich nun also rauskriegen, wieviel Speicher mir noch zur Verfügung steht? Das prüfen, ob die nächste Datei noch draufpasst, krieg ich dann schon hin...


gruß
rochus

_________________
Im Nachhinein ist man immer ein Schlauch!
"Dream as if you'll live forever, live as if you'll die today!" James Dean
Matthias2000
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mi 02.02.05 16:14 
Hi,
ich bin auf das gleiche Problem gestossen.
Hast Du eine Lösung gefunden?

Wenn ja, wäre es toll, wenn Du mir helfen könntest!

Danke,
Matthias
rochus Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 416

Win XP Prof, Fedora Core 4, SuSE 7.0
D7 Ent, D2005 Pers
BeitragVerfasst: Mi 02.02.05 16:31 
Hi.
Hab noch keine Lösung dafür gefunden, konnte mich seither aber auch nicht wirklich damit befassen, da andere Aufgaben wichtiger waren.
Wenn ich wieder ran muss und ne Lösung finde, poste ich sie hier.


gruß
rochus

_________________
Im Nachhinein ist man immer ein Schlauch!
"Dream as if you'll live forever, live as if you'll die today!" James Dean
Alstar
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 827



BeitragVerfasst: Mi 02.02.05 16:37 
Hi rochus :wink2:

Wenn Du das Netzlaufwerk über einen Laufwerksbuchstaben ansprichst, probier es mal mit

ausblenden Delphi-Quelltext
1:
DiskFree();					


In die Klammer kommt der Buchstabe des Laufwerks als Zahl, wobei a=0 b=1 c=2 ...


Alstar
rochus Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 416

Win XP Prof, Fedora Core 4, SuSE 7.0
D7 Ent, D2005 Pers
BeitragVerfasst: Mi 02.02.05 16:39 
hi allstar.
leider spreche ich das eben nicht zu 100 prozent über nen laufwerksbuchstaben an. möglich wärs, dass der kunde in den einstellungen z.B. D:\ angibt, aber es kann auch sein, dass er den UNC pfad angibt :)

gruß
rochus

_________________
Im Nachhinein ist man immer ein Schlauch!
"Dream as if you'll live forever, live as if you'll die today!" James Dean
Alstar
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 827



BeitragVerfasst: Mi 02.02.05 16:45 
Mhh. Achso ...

Warum fängst du den Fehler nicht einfach zur Laufzeit ab, wenn zu wenig Speicher zur Verfügung steht?

Alstar
rochus Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 416

Win XP Prof, Fedora Core 4, SuSE 7.0
D7 Ent, D2005 Pers
BeitragVerfasst: Mi 02.02.05 16:50 
das ist kacke, weil:
Datensicherung mit vielen Daten lässt sicher nicht laufen, wenn du gerade dran sitzt, sprich das kann über Nacht laufen.
So, jetzt startest du die Sicherung und gehst davon aus, dass das bis zum nächsten Morgen erledigt ist. Tritt da jetzt ein Fehler auf, kommst du morgens ins Büro und siehst das und dann denkst dir: "Tolle Wurst, da darf ich jetzt noch mal ran und dann die ganze Sache per Hand abgleichen, wenn der Rest auch gesichert ist..." Sprich, nen paar Mausklicks zu viel! Der Anwender ist bequem. Daher: Am Anfang checken, ob genügend Speicher da und wenn nicht: anderen Ort suchen. Wenn dazwischen dann jemand noch rumfummelt, dann ist das Pech (z.B. auch Daten auf das Laufwerk schreibt), aber deshalb lässt man Datensicherungen auch Nachts laufen, weil da am ehesten niemand irgendeinen Quark veranstaltet.

;)

_________________
Im Nachhinein ist man immer ein Schlauch!
"Dream as if you'll live forever, live as if you'll die today!" James Dean
Alstar
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 827



BeitragVerfasst: Mi 02.02.05 16:54 
rochus hat folgendes geschrieben:

[...] und dann denkst dir: "Tolle Wurst [...]


Bockwurst oder Leberwurst? :mrgreen:

Nein. Im Ernst: Mhh. Dann lässt du einfach nen Dienstprogramm auf dem Server laufen, das dir sagt wieviel Speicher noch frei ist ...
Ne andere Lösung fällt mir jetzt nicht spontan ein, aber eventuell gibt es noch eine WinAPI-Funktion die sowas erlaubt.

Alstar
rochus Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 416

Win XP Prof, Fedora Core 4, SuSE 7.0
D7 Ent, D2005 Pers
BeitragVerfasst: Mi 02.02.05 16:56 
Das mit den Diensten gefällt mir nicht, weil dann müsstes auf jedem zur Verfügung stehenden Rechner den Dienst drauf tun..

_________________
Im Nachhinein ist man immer ein Schlauch!
"Dream as if you'll live forever, live as if you'll die today!" James Dean
Alstar
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 827



BeitragVerfasst: Mi 02.02.05 17:20 
Mhh. Also ich hab mal gesucht und gesucht und gesucht.
Mit folgendem Ergebnis:

Ich habe keine andere Funktion zum Auslesen des freien Speichers gefunden.

AAAABBBBER ne andere Lösung gefunden:

Du berechnest den Speicherplatz der benötigt wird und legst mit Hilfe eines TFileStreams eine Datei auf dem Netzlaufwerk an und machst dann folgendes:

ausblenden Delphi-Quelltext
1:
  FileStream.Size := BerechneteGroesse;					


Der FileStream hat auf dem Laufwerk dann die angegebene Größe. Jetzt musst du nornoch testen, ob diese Datei dann auch die angegebene Größe hat, oder nicht.

Alstar
Matthias2000
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Mi 02.02.05 19:21 
Ich möchte aber wirklich auch wissen, wieviel frei ist.
z.B. Anzeige "xy Minuten frei" bei Audioanwendungen.