AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Prüfen, ob man in ein Verzeichnis schreiben kann
Thema durchsuchen
Ansicht
Themen-Optionen

Prüfen, ob man in ein Verzeichnis schreiben kann

Ein Thema von r2c2 · begonnen am 30. Mär 2006 · letzter Beitrag vom 6. Apr 2006
 
r2c2

Registriert seit: 9. Mai 2005
Ort: Nordbaden
925 Beiträge
 
#1

Prüfen, ob man in ein Verzeichnis schreiben kann

  Alt 30. Mär 2006, 13:23
Hallo DPler
ich möchte herausfinden, ob ich in einem Verzeichnis schreiben kann(Es dreht sich um eine Datei mit Programmoptionen). Möglichkeiten sind mir da genau drei eingefallen:

Möglichkeit a)
Delphi-Quellcode:
function TOptions.CanWrite(ADir: string): Boolean;
var
  F: File;
  FileName: string;
begin
  FileName := IncludeTrailingBackslash(ADir) + 'TestFile_' + DateTimeToStr(Now); // Unwahrscheinlich, dass so ne Datei schon existiert
  try
    AssignFile(F, FileName);
    try
      Rewrite(F); // einfach mal erstellen
    finally
      CloseFile(F);
    end;
    if FileExists(FileName) then // hat das Erstellen geklappt?
    begin
      DeleteFile(PChar(FileName)); // Datei wird ja nicht mehr gebraucht
      Result := True;
    end
    else
    begin
      Result := False;
    end;
  except
    Result := False; // Fehler bein Erstellen
  end;
end;
Einfach ne Datei erstellen und gucken, obs geklappt hat.

Vorteil:
- Leicht zu implementieren

Nachteil:
- Sieht irgendwie unprofessionell aus

Möglichleit b)
- Auf OS prüfen
--> wenn Win9x: erstmal true
--> wenn WinNT+: Schreibrechte prüfen
- Dann auf Datenträger prüfen: CD: false, HD: true

Vorteil:
- sieht professioneller aus

Nachteile:
- Viel Quelltext
- Wer weiß, ob ich nicht irgendwas vergessen hab oder sich was mit Vista, WinXP SP3, ... ändert?

Möglichkeit c)
- Auf Dateisystem prüfen:
--> FAT: true
--> NTFS: Schreibrechte prüfen
--> CDFS: false

Vorteil:
- sieht professioneller aus

Nachteile:
- Viel Quelltext
- Was, wenn WinFS(kommt IIRC mit Vista SP1 oder? ) kommt?
- Wer weiß, ob ich nicht irgendwas vergessen hab oder sich was mit Vista, WinXP SP3, ... ändert?

Was würdet ihr machen? a) b) c) oder doch vielleicht Möglichkeit d), die wunderbar funktioniert, keine von-hinten-durch-die-Brust-ins-Auge-Funktion ist und mir nur nicht einfallen will...

mfg

Christian
Kaum macht man's richtig, schon klappts!
  Mit Zitat antworten Zitat
 


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 14:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz