Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Ordnerattribute festlegen (https://www.delphipraxis.net/48559-ordnerattribute-festlegen.html)

Kompon Ente 27. Jun 2005 11:45


Ordnerattribute festlegen
 
Hi,

kann ich einen Ordner sozusagen verschlüsseln bzw. wie bei FileGetAttr ausblenden, damit man ihn nicht sehen kann (wenn in den Einstellungen "Versteckte Systemdateien anzeigen" deaktiviert ist)?

MrKnogge 27. Jun 2005 11:50

Re: Ordnerattribute festlegen
 
ja kann man, hier im Forum müsstest du etliches finden.

Kompon Ente 27. Jun 2005 11:53

Hi,

habe schon gesucht, blicke aber nicht ganz durch - ziemlich verwirrend alles.

Welcher Code ist denn nun der korrekte? :roll:

MrKnogge 27. Jun 2005 11:59

Re: Ordnerattribute festlegen
 
Hier im Forum suchenGetFileAttributes

In folgendem Beispiel wird ein Ordner auf readOnly gesetzt,
das musst du dann nur auf versteckt abändern:
http://www.delphipraxis.net/internal...=198176#198176

Kompon Ente 27. Jun 2005 12:05

Hi,

mein Ordner heißt "data".

Habe nun:

Delphi-Quellcode:
if DirectoryExists('data\') then
  ...
Wie geht's weiter? Will ihn verstecken!

MrKnogge 27. Jun 2005 12:10

Zitat:

Zitat von Kompon Ente
Wie geht's weiter?

auf obigen link klicken und lesen :wink:

Im letzten posting findest du dann ein link zum DF

gruss

[edit]Tippfehler :roll: [/edit]

Kompon Ente 27. Jun 2005 12:19

Hi,

ohje, ich komme nicht weiter:

Delphi-Quellcode:
  if DirectoryExists(PChar('data\') then
    (SetFileAttributes(PChar('data\'),FILE_ATTRIBUTE_HIDDEN));
Fehlermeldung:
Delphi-Quellcode:
[Fehler] Unit1.pas(327): Undefinierter Bezeichner: 'DirectoryExists'
[Fataler Fehler] Unit1.pas(7): Verwendete Unit 'Unit1' kann nicht compiliert werden

Kompon Ente 27. Jun 2005 12:23

Hat sich erledigt! :wall:

Man sollte die Implementierung der FileCtrl in den uses nicht vergessen. :roll: :mrgreen:

r2c2 27. Jun 2005 12:42

Zitat:

Zitat von Kompon Ente
Hi,

mein Ordner heißt "data".
...
Delphi-Quellcode:
if DirectoryExists('data\') then
  ...

Jo, dein Ordner heißt data, meiner aber nicht. :mrgreen: Bitte verwende keine relativen Pfade(außer du willst n Russisch-Roulette-Prog schreiben :lol:). Besser:
Delphi-Quellcode:
ExtractFilePath(ParamStr(0)) + 'data\'; // oder so ähnlich, kommt dreauf an, wo "dein" Ordner liegt.
mfg

Christian

MrKnogge 27. Jun 2005 12:51

Zitat:

Zitat von r2c2
Zitat:

Zitat von Kompon Ente
Hi,

mein Ordner heißt "data".
...
Delphi-Quellcode:
if DirectoryExists('data\') then
  ...

Jo, dein Ordner heißt data, meiner aber nicht. :mrgreen: Bitte verwende keine relativen Pfade(außer du willst n Russisch-Roulette-Prog schreiben :lol:). Besser:
Delphi-Quellcode:
ExtractFilePath(ParamStr(0)) + 'data\'; // oder so ähnlich, kommt dreauf an, wo "dein" Ordner liegt.
mfg

Christian

Und wo ist da nun bitte der unterschied ?

Kompon Ente 27. Jun 2005 12:57

Hi,

das funktioniert aber nicht so, wie Du's gepostet hast!

Warum soll ich das eigentlich nehmen?

Beim anderen passiert ja auch nichts!

Ich frage ja ab:

Wenn (if) die Konfigurationsdatei, die sich - wie alle wichtigen Daten des Programms - im Ordner 'data' befindet, existiert, wird der Ordner versteckt.
Ansonsten (else) kommt ein Warnhinweis, dass die Datei nicht existiert und das Programm wird geschlossen!

Was ist daran riskant? :|

r2c2 27. Jun 2005 12:58

Zitat:

Zitat von MrKnogge
Und wo ist da nun bitte der unterschied ?

Der is ganz einfach und den sollte man uach nie vergessen:
Relative Pfade sind Relativ zum Arbeitsverzeichnis(CurrentDirectory) Das kann sich aber andauernd ändern(z.B., wenn man in nem OpenDialog n anderes Verzeichnis wählt oder einfach nur die Multitasking-Funktion von Win ausprobiert). Stell dir vor du prüfst nicht, ob ein Verzeichnis existiert, sondern schreibst ne Datei(nur um das Problem etwas zu forcieren). Wenn sich das Arbeitsverzeichnis(heißt das so :gruebel:) ändert, schreibst du wild im System rum und nicht, wie bei der ParamStr(0) variante im Verzeichnis, in dem die Exe is.

mfg

Christian


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:14 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-2025 by Thomas Breitkreuz