AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

WriteFile und Festplatte voll

Ein Thema von Dezipaitor · begonnen am 21. Mai 2007 · letzter Beitrag vom 22. Mai 2007
Antwort Antwort
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#1

WriteFile und Festplatte voll

  Alt 21. Mai 2007, 23:53
hi

ich habe mal eine Frage zu WriteFile mit einer Datei.
Was passiert wenn die Festplatte/Quota voll ist?

Sagen wir, ich habe einen Block von 100kb den ich WriteFile übergebe.
Nehmen wir an, ein Cluster hat 32kb und wir haben noch drei Cluster übrig. D.h. 96kb können noch auf die Platte geschrieben werden.
Für die restlichen 4 Kb gibt es aber kein Platz mehr. Was macht WriteFile ?

1. Es erkennt schon vorher den Platzmangel, schreibt nix und meldet einen Fehler
2. Es schreibt einfach alles was es gibt, liefert aber einen Fehler und meldet 96Kb geschrieben
3. Es schreibt einfach alles was es gibt, liefert aber KEINEN Fehler und meldet 96Kb geschrieben
4. ????

Hat da jemand eine Idee? Aus der MSDN werd ich net wirklich schlau.

THX
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: WriteFile und Festplatte voll

  Alt 22. Mai 2007, 00:02
Zum einem steht im Parameter lpNumberOfBytesWritten wie viel Byte geschrieben werden konnten und zum anderem:
Zitat:
If the function fails, the return value is zero. To get extended error information, call GetLastError
GetLastError sollte dann also einen Fehlercode ausgeben wie:
ERROR_WRITE_FAULT 29 oder ERROR_NOT_ENOUGH_MEMORY 8 oder so was. Probier es doch einfach aus. Kannst ja eine Diskette zum Testen nehmen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#3

Re: WriteFile und Festplatte voll

  Alt 22. Mai 2007, 11:29
irgendwie wollte ich das Testen vermeiden,
da ich es ja in den unterschiedlichsten Umgebungen machen müsste (Win98 bis WinVista)

Auf zur Arbeit.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.201 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: WriteFile und Festplatte voll

  Alt 22. Mai 2007, 11:35
Zitat von Dezipaitor:
irgendwie wollte ich das Testen vermeiden,
da ich es ja in den unterschiedlichsten Umgebungen machen müsste (Win98 bis WinVista)
Läst sich nicht vermeiden da sich jede Windows-Version anders verhalten (kann).
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: WriteFile und Festplatte voll

  Alt 22. Mai 2007, 11:36
anstelle der Verwendung eine Diskette kann man auch einfach das Kontingent eines Users festlegen.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#6

Re: WriteFile und Festplatte voll

  Alt 22. Mai 2007, 12:44
Zitat von SirThornberry:
anstelle der Verwendung eine Diskette kann man auch einfach das Kontingent eines Users festlegen.
wobei das nur ein zusätzlicher Testfall wäre.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#7

Re: WriteFile und Festplatte voll

  Alt 22. Mai 2007, 19:05
Der Fall 2. scheint mir richtig zu sein.
Zitat:
When writing to a nonblocking, byte-mode pipe handle with insufficient buffer space, WriteFile returns TRUE with *lpNumberOfBytesWritten < nNumberOfBytesToWrite.
Dies dürfte dann nicht nur für Pipes, sondern auch für volle Dateisysteme zutreffen.
Ein Test mit einer Floppydisk (Hey, das sind die eckigen Plastikdinger, die vor 10 Jahren top modern waren) dürfte Klarheit bringen.
Andreas
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:11 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