Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   CreateDir legt kein Verzeichnis an (https://www.delphipraxis.net/164126-createdir-legt-kein-verzeichnis.html)

marcibaer 29. Okt 2011 16:51

CreateDir legt kein Verzeichnis an
 
Hallo zusammen,

ich habe einen Fehler, den ich mir nicht erklären kann:

Delphi-Quellcode:
      Nummer := 0;
      REPEAT
        ok := CreateDir(Verzeichnis);
        IF not ok THEN
          begin
            Inc(Nummer);
            o := Pos('~',Verzeichnis);
            if (o > 0) then
              Delete(Verzeichnis,o,255);
            Verzeichnis := Verzeichnis+'~'+IntToStr(Nummer);
          end;
      UNTIL ok;
Klappt bei mir hervorragend, bei 2 Nutzern, die genau so XP benutzen, wie ich, allerdings nicht!:(
D.h. die Routine wird abgearbeitet, CreateDir MUSS also mal TRUE geliefert haben, aber es gibt KEIN
Verzeichnis - Rechnersuche nach einer Datei, die dann IN dem Verzeichnis sein sollte, brachte kein Ergebnis.

Kann das irgendetwas mit Benutzerrechten zu tun haben?!

Iegendwelche Vorschläge!?

Marc

mkinzler 29. Okt 2011 16:53

AW: CreateDir legt kein Verzeichnis an
 
Verwendest du Windos Wista oder Windows 7 und versuchst einen Ordner in einem Verzeichnis anzulegen, in dem du keine Schreibrechtre verfügst? (Dateisystemvirtualisierung)

himitsu 29. Okt 2011 17:04

AW: CreateDir legt kein Verzeichnis an
 
Zitat:

die genau so XP benutzen
Aber Dateirechte gab es da auch schon.
Bei fehlenden Rechten sollte CreateDir es allerdings False zurückliefen.

Wie heißen denn die Verzeichnisse und wo sollen sie erstellt werden?


Test:
Delphi-Quellcode:
      Nummer := 0;
      REPEAT
        ok := CreateDir(Verzeichnis);
        IF not ok THEN
          begin
            ShowMessage('OK');
            ...
          end
        ELSE
          ShowMessage(SysErrorMessage(GetLastError));
      UNTIL ok;

mkinzler 29. Okt 2011 17:05

AW: CreateDir legt kein Verzeichnis an
 
Bei XP kam aber ein Fehler bei fehlenden Rechten und ab Vista ( mit aktiver UAC) wird der Schreibzugriff umgelenkt.

himitsu 29. Okt 2011 17:11

AW: CreateDir legt kein Verzeichnis an
 
Das umlenken geschieht aber nur in bestimmten Verzeichnissen.
Darum auch die Frage nach den Verzeichnisnamen.
Wobei das in XP ja noch kein Problem darstellen sollte.

Zitat:

CreateDir MUSS also mal TRUE geliefert haben, aber es gibt KEIN
Entweder debuggen und nachsehn, was tatsächlich passiert und keine blosen VERMUTUNGEN anstellen,
oder die Funktion loggen, also z.B. Statuswerte und Abarbeitungspunkte abspeichern und dann auswerten.

jaenicke 29. Okt 2011 17:57

AW: CreateDir legt kein Verzeichnis an
 
Vielleicht fehlt auch einfach ein Teil des Pfades, d.h. vielleicht ist es einfach nur ein relativer Pfad. Dann wäre es ja mehr oder weniger Zufall wo das Verzeichnis landet oder eben nicht, wenn man nicht genau weiß was man da tut.

marcibaer 29. Okt 2011 18:11

AW: CreateDir legt kein Verzeichnis an
 
Hi zuammen!

Fehler bei 2x WinXP und 1xWin7.
Ich benutze WinXP und da klappt's.

Zitat:

Aber Dateirechte gab es da auch schon.
Bei fehlenden Rechten sollte CreateDir es allerdings False zurückliefen.
Davon bin ich auch ausgegangen.

Zitat:

Wie heißen denn die Verzeichnisse und wo sollen sie erstellt werden?
Die Verzeichnisse werden NUR im Verzeichnis des Programms angelegt - Namensgebung ist frei.

Zitat:

PS: CreateDir gibt auch True zurück, wenn das Verzeichnis schon vorher existierte.
Das wird vorher überprüft und nur zugelassen, wenn nicht existent.

Zitat:

Bei XP kam aber ein Fehler bei fehlenden Rechten und ab Vista ( mit aktiver UAC) wird der Schreibzugriff umgelenkt.
Wo kann ich die Rechte nachgucken!?

Zitat:

Das umlenken geschieht aber nur in bestimmten Verzeichnissen.
Darum auch die Frage nach den Verzeichnisnamen.
Na, es passiert ja nur folgendes:
existiert im aktuellen Verzeichnis z.B. schon das Verzeichnis A, das nun eigentlich angelegt werden soll, so wird Verzeichnis A~1 draus, existiert das, so Verzeichnis A~2 etc.

Marc

Luckie 29. Okt 2011 18:21

AW: CreateDir legt kein Verzeichnis an
 
Zitat:

Zitat von marcibaer (Beitrag 1133437)
Fehler bei 2x WinXP und 1xWin7.
Ich benutze WinXP und da klappt's.

Und

Zitat:

Die Verzeichnisse werden NUR im Verzeichnis des Programms angelegt - Namensgebung ist frei.
Vermutung, du arbeitest an deinem Rechner als Administrator, die beiden anderen Benutzer nicht, wie man es auch machen sollte.

himitsu 29. Okt 2011 18:39

AW: CreateDir legt kein Verzeichnis an
 
Zitat:

im Verzeichnis des Programms angelegt
Wenn du damit das "Programme"-Verzeichnis meinst, dann (wie Luckie schon sagte) hat dort schon seit vielen Jahren, auch schon zu Zeiten von XP, ein normaler "Benutzer" keine Schreibrechte (zu Recht hat er das nicht, wegen Viren, Trojaner und Co.).

Egal was du machst ... dort speichert man nichts ab.

Unter Win7 und mit aktivem UAC leitet Windows diese Schreibzugriffe in den "virtual store" um, damit auch schrottig programmierte Programme noch "funktionieren".
In Vista hatten sich Viele ja aufgeregt, daß Vista scheiße sei, da viele Programme nicht funktionieren, dabei war das eigentlich nur die Schuld der Programmierer dieser schlechten Programme.

marcibaer 29. Okt 2011 20:31

AW: CreateDir legt kein Verzeichnis an
 
Zitat:

Bei fehlenden Rechten sollte CreateDir es allerdings False zurückliefen.
Tut es aber wohl nicht ... ich habe einem User das Programm mit
Delphi-Quellcode:
  Nummer := 0;
      REPEAT
        ok := CreateDir(Verzeichnis);
        IF not ok THEN
          begin
            ShowMessage('OK');
            ...
          end
        ELSE
          ShowMessage(SysErrorMessage(GetLastError));
      UNTIL ok;
geschickt. Seine Antwort:
Zitat:

klappt leider nicht! Gibt zwar "ok" aus, legt aber kein Verzeichnis an!
Wo legt man denn sinvollerweise die Programmdaten ab?!
"Dokumente und Einstellungen/Username"?
Und wie komme ich daran!?

Marc


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:32 Uhr.
Seite 1 von 2  1 2      

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