Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Parameter für CreateFile (https://www.delphipraxis.net/140947-parameter-fuer-createfile.html)

Opa 29. Sep 2009 14:51


Parameter für CreateFile
 
Welche(n) Parameter muss man setzen um Festzustellen, mit CreateFile, ob man auf ein Lw. Schreiben kann. (Bitte in deutsch, sonst würde ich ggf. ja die Hilfe bei Delphi verstehen *g)
Eine Liste der andern Parameter (in D) wäre auch nicht von Übel
Danke

Luckie 29. Sep 2009 14:59

Re: Parameter für CreateFile
 
Da gibt es keinen Parameter. Wenn die Datei nicht angelegt werden kann, kehrt die Datei mit einem Fehler zurück. Die genaue Ursache kann man dann über MSDN-Library durchsuchenGetLastError abfragen.

Opa 29. Sep 2009 15:27

Re: Parameter für CreateFile
 
Es ist also richtig das ich erst immer eine Quasi-Datei erzeugen muss um festzustellen ob ich auf dem Lw schreiben kann?
Es gibt also nix in W-Doof wo ich das anders feststellen kann?

himitsu 29. Sep 2009 15:37

Re: Parameter für CreateFile
 
Wenn du nicht schreiben kannst/darfst, dann wird (auch quasi) keine Datei erstellt.

Opa 29. Sep 2009 15:50

Re: Parameter für CreateFile
 
Bis jetzt hatte ich das immer so gemacht - finde das aber nicht so cool.
Ich dachte es gibt was "Besseres"
Delphi-Quellcode:
function _DriveWriteTest(DateiName:string):boolean;
var
  F : file;
begin
  AssignFile(F,DateiName);
  {$I-}
    rewrite(F);
    CloseFile(F);
    erase(F);
  {$I+}
  result := ioResult > 0;
end;
Das ist old Data-Becker (Pascal)*g

himitsu 29. Sep 2009 16:02

Re: Parameter für CreateFile
 
Das ist nunmal die einzig sichere Methode.

Es gab hier aber schon öfters Threads zu diesem Thema.
- man müßte erstmal schauen, ob das Laufwerk schreibgeschützt ist
(aber diese angabe stimmt nicht immer)
- dann müßte man (bei NTFS und Co.) die Zugriffsrechte ermitteln und auswerten
(schön umständlich)
- und dann kommt noch das Problem der Quota
also diese auch noch ermitteln und schauen, ob noch genug Platz ist
- dann kommt noch das Sharing-Problem
existiert diese Datei und wird sie von einem anderem Programm verwendet
- es könnte auch ein Netzlaufwerk sein und da gibt es auch gewisse Rechte
- .........

Opa 29. Sep 2009 16:09

Re: Parameter für CreateFile
 
Also das was ich/wir vor 20+x Jahren gemacht haben ist immer noch gut. Dann machen wir so weiter :spin2:

himitsu 29. Sep 2009 16:18

Re: Parameter für CreateFile
 
nja, es gibt nur bei einer Sache Probleme :oops:

Wenn man in dem Verzeichnis nur Dateien erstellen, aber sie nicht ändern oder löschen darf,
dann wird diese Variante erstmal sagen es geht und wenn man dann versucht diese Datei nochmals zu öffnen, um zu speichern, dann geht es plötzlich nicht mehr. :nerd:
Also um eine Fehlerprüfung beim Speichern kommt man nicht drumrum.

> die lieben Zugriffsrechte halt (sowas kommt allergings recht selten vor)


PS: Der File-Open/Save-Dialog hat einige Prüfungen drinnen, welche Einiges für dich machen (aber vermutlich auch auf die "einfache" Variante), drum laß ich derartige Prüfung selber weg.
- existiert das Verzichnis
- existiert die Datei oder kann sie erstellt werden
- usw.
schau dir einfach mal die Optionen an

Opa 29. Sep 2009 17:01

Re: Parameter für CreateFile
 
Was ich mache ist ein privater Home-Rechner, ohne Netzwerk usw. Mit Netzwerke und deren rechte habe ich auch nichts zu tun und auch keine Ahnung davon. Und da ich das Proggen nur als Freizeit-Beschäftigung mache…
Wenn ich mal was nicht weiß oder genau weiß, freut es mich, hier Kompetente Leute zu finden. Da habt ihr meine volle bewunderung. Gerade Was himitsu und Luckie angeht. Im übrigen, Luckie, hast du schöne Sachen auf deiner HP. Die ich mir eingelagert habe. *g
Ihr seit nicht zufälligerweise Roboter – Wann geht ihr mal schlafen…?
Ich dachte es gibt mittlerweile ein W-Doof-Befehl der mir alle benötigten Informationen liefert (Dann natürlich auch Netzwerk, DVD usw.). Und das dieser dann schneller ist.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:03 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