Autor Beitrag
bf109g.01
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 84



BeitragVerfasst: Do 29.12.11 23:12 
Hallo, ich möchte nach einer Installation einen Ordner mit diversen Subordnern finden.
Jetzt kann der User den allerdings logischerweise sonstwohin gelegt haben.

Nenne wir das ganze mal "A1\A2\A3" in A3 will ich Dateien einfügen lassen.
Nun weiß ich aber nicht, wo A1 liegt.

Gibt es dafür eine einfache und (möglichst selbst ablaufende) Function, die mir da weiterhilft, dass ich am Ende
"C:\...\...\A1\A2\A3" habe?

Vielen Dank schonmal!
bummi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: Fr 30.12.11 01:37 
Eigentlich sollte das Setup ja wissen wo es hininstalliert und könnte z.B. einen Registrykey anlegen.
Ansonsten Rekursiv eine ReadDir-Funktion mit FindFirst/FindNext.

_________________
Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 30.12.11 07:00 
Das macht aber echt keinen Sinn. Bis du dann den Ordner bei mir z.B. gefunden hättest, würde es sehr lange dauern, da du mehrere Partitionen mit mehreren Tebibyte durchsuchen müsstest...

Und was benutzt du eigentlich für einen komischen Installer? Der muss sich doch ohnehin merken wo installiert wurde, sonst funktioniert die Deinstallation ja relativ schlecht.
InnoSetup z.B. packt den Pfad im Uninstall-Zweig der Registry in "Inno Setup: App Path" und in den Standardwert "InstallLocation".
Tranx
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 648
Erhaltene Danke: 85

WIN 2000, WIN XP
D5 Prof
BeitragVerfasst: Fr 30.12.11 13:42 
Wenn Ordner vom Benutzer bei der Installation angelegt/eingerichtet werden, dann sollte dies doch die Installationsroutine speichern (Registry oder in eine Log-Datei ...) Dann kannst Du diese dann auslesen und weißt dann, wo der Ordner A3 sich befindet.

Also bei der Installation eben eine solche Speicherung mit einbeziehen. Bei mir sind es zumeist Ini-Dateien, die im Unterordner des Programms liegen. Ich habe allerdings auch nur auf dem Netzwerk liegende Programme, also keine lokalen Installationen).

_________________
Toleranz ist eine Grundvoraussetzung für das Leben.
Andreas L.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1703
Erhaltene Danke: 25

Windows Vista / Windows 10
Delphi 2009 Pro (JVCL, DragDrop, rmKlever, ICS, EmbeddedWB, DEC, Indy)
BeitragVerfasst: Fr 30.12.11 14:29 
user profile iconbf109g.01 hat folgendes geschrieben Zum zitierten Posting springen:

Nenne wir das ganze mal "A1\A2\A3" in A3 will ich Dateien einfügen lassen.
Nun weiß ich aber nicht, wo A1 liegt.

Gibt es dafür eine einfache und (möglichst selbst ablaufende) Function, die mir da weiterhilft, dass ich am Ende
"C:\...\...\A1\A2\A3" habe?


Ich vermute mal das diese Unterordner im Verzeichnis der EXE liegen, richtig? Den kompletten Pfad zur Anwendung bekommst du z. B. so:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
var
  path: String;
begin  
  path := ExtractFilePath(Application.ExeName);
  //...
end;
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19314
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 30.12.11 15:54 
Es geht vermutlich nicht um die Exe der Anwendung selbst, denn die hat ja dort normalerweise ohnehin keine Schreibrechte. Aber mal schauen was er sagt.