Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Directoryexists/delete (https://www.delphipraxis.net/178026-directoryexists-delete.html)

Frage95 12. Dez 2013 08:28

Directoryexists/delete
 
Delphi-Quellcode:
function TInstallationsTool.AllDirectoryExists(const Directory: string): Boolean;
var
   DirArray : Array of string;
   i : integer;
begin
   setlength(dirArray,6);
   DirArray[0] := '\\D:\Watchdog';
   DirArray[1] := '\\D:\WellnessDienst';
   DirArray[2] := '\\D:\MySQL';
   DirArray[3] := '\\D:\Guthabendienst';
   DirArray[4] := '\\D:\Studioservereinrichten';
   DirArray[5] := '\\C:\McFit';
   DirArray[6] := '\\C:\Firewall';

   for I := DirArray[0] to DirArray[6] do
   if DirectoryExists then begin
      DeleteFile();
      Showmessage('Directory existiert');
   end else begin
      Showmessage('directory existiert nicht');
   end;
      SetLength(dirArray,0);
end;
Hey ich habe ein Tool geschrieben, dass per knopfdruck alle nötigen Daten kopiert. Nun möchte ich diese erweitern und zwar
wenn er die Daten kopiert soll er vorher prüfen ob das Verzeichnis bereits existiert wenn ja soll er er löschen und dann das neue draufkopieren.
Funktioniert nicht so wirklich.....:pale:

jaenicke 12. Dez 2013 08:31

AW: Directoryexists/delete
 
Das kompiliert so doch noch nicht einmal. DirectoryExists braucht z.B. als Parameter den Dateinamen und dass da ein Parameter fehlt, sagt dir der Compiler.

Und was soll der doppelte Backslash vor den Laufwerksbuchstaben?

baumina 12. Dez 2013 08:32

AW: Directoryexists/delete
 
Zudem löscht man ein Directory mit z.B. RemoveDir.

himitsu 12. Dez 2013 08:41

AW: Directoryexists/delete
 
Und
Delphi-Quellcode:
\\D:\....
ist doch keine gültige Pfadangabe. :gruebel:
Falls es UNC werden sollte, dann versuch es nochmal richtig.

- zur Code-Syntax sagt dir der Compiler was
- und die Syntax des Pfades sollte in der Windows-Fehlermeldung erwähnt werden

DeddyH 12. Dez 2013 08:42

AW: Directoryexists/delete
 
Außerdem ist das Array zu klein dimensioniert, das sollte einem die Bereichsprüfung auch melden.

baumina 12. Dez 2013 08:43

AW: Directoryexists/delete
 
Auch die for-Schleife kann so nicht gehen.

himitsu 12. Dez 2013 08:47

AW: Directoryexists/delete
 
Stimmt (High und Low).

Und, wenn du noch die Bereichsprüfung in den Projektioprionen anschaltest, dann wird dir gesagt, daß
Delphi-Quellcode:
SetLength(dirArray, 6);
nicht stimmt,
bzw. der Index [6], welchen es nicht gibt.

Sir Rufo 12. Dez 2013 08:55

AW: Directoryexists/delete
 
Reinventing Wheel Inno Setup

Frage95 12. Dez 2013 09:35

AW: Directoryexists/delete
 
hmn ja wenn Ihr ja so toll seit schlagt mir halt mal ne lösung vor dass dieser code fehlerhaft ist das weiß ich auch.

Frage95 12. Dez 2013 09:36

AW: Directoryexists/delete
 
außerdem würde ich gern wissen ob ich überhaupt richtig angesetzt habe.

Oben steht ja was ich machen will, ist dies überhaupt eine vernünftige lösung mit einem array etc..

baumina 12. Dez 2013 09:38

AW: Directoryexists/delete
 
Eine wirklich sehr gute Lösung wäre die von Sir Rufo vorgeschlagene aus #8. Inno Setup macht genau das was du brauchst, ist kostenlos und Ratz Fatz bist Du fertig.

DeddyH 12. Dez 2013 09:39

AW: Directoryexists/delete
 
Zumindest ich habe nicht mal im Ansatz verstanden, was Du überhaupt vorhast. Verzeichnisse löschen und draufkopieren, was soll das im Klartext bedeuten?

p80286 12. Dez 2013 10:08

AW: Directoryexists/delete
 
@DeddyH Nun er will wohl sicher stellen, daß keine Altdaten mehr vorhanden sind und darum will er das Verzeichnis löschen.

Wie wäre es denn mit einer Batchdatei? Nicht so sexy wie ein Programm...

Code:
del Meinpfad\zulöschen\*.* /s
cd Meinpfad
rd zulöschen
md neuanlage
copy from\*.* Meinpfad\neuanlage\*.*
Gruß
K-H

DeddyH 12. Dez 2013 10:12

AW: Directoryexists/delete
 
Ob da alle Benutzer damit einverstanden sind, wenn ein Programm komplette Verzeichnisse löscht? Es könnten ja theoretisch auch Dateien enthalten sein, die gar nicht vom Programm angelegt wurden.

p80286 12. Dez 2013 10:35

AW: Directoryexists/delete
 
Zitat:

Zitat von DeddyH (Beitrag 1239506)
Ob da alle Benutzer damit einverstanden sind, wenn ein Programm komplette Verzeichnisse löscht? Es könnten ja theoretisch auch Dateien enthalten sein, die gar nicht vom Programm angelegt wurden.

Quatsch, ich als Programmierer/Administrator weiß schon was richtig/notwendig ist.:stupid:
Gruß
K-H

DeddyH 12. Dez 2013 10:38

AW: Directoryexists/delete
 
Aber sicher doch. Vertrauen Sie mir – ich weiß, was ich tue!

himitsu 12. Dez 2013 10:53

AW: Directoryexists/delete
 
Zitat:

Zitat von Frage95 (Beitrag 1239500)
hmn ja wenn Ihr ja so toll seit schlagt mir halt mal ne lösung vor dass dieser code fehlerhaft ist das weiß ich auch.

Das steht doch da?




Die Fehler bei ...

... Parameter bei DirectoryExists und DeleteFile: siehe #2, bzw. siehe OH

... DeleteFile RemoveDir: siehe #3 (was wolltest du löschen? Datei oder Verzeichnis)

... setlength: siehe #7 (0 bis 6 = 7)

... for: siehe #6 und #7

... gültige Pfad: siehe #2 und #4 (geh mal in den Explorer und frag ihn wie deine Verzeichnisse aussehnen - in die Adressleiste klicken)

himitsu 12. Dez 2013 11:05

AW: Directoryexists/delete
 
Zitat:

AllDirectoryExists und Delete
Ähhhhh, soll die Funktion nun prüfen, ob die Verzeichnisse existieren oder soll sie löschen?

DeddyH 12. Dez 2013 11:07

AW: Directoryexists/delete
 
Löschen und draufkopieren, was immer das heißen mag.


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