Ordner automatisch finden lassen
spacer
Autor Nachricht
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!
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.


Werbung ausblenden? Dann registriere Dich kostenlos. Weitere Gründe für eine Registrierung.
bummi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 979
Erhaltene Danke: 124

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
DRY DRY KISS
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 15841
Erhaltene Danke: 741

XP, W7 x64 (Chrome, IE9, FF), Debian, (OSX 10.7)
RAD XE 2, Java (NB), C++, C# (VS 2010), JS/HTML, 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".
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Tranx
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic star
Beiträge: 308
Erhaltene Danke: 22

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.
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
Andreas L.
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starhalf offtopic starofftopic starofftopic star
Beiträge: 1671
Erhaltene Danke: 14

Windows Vista Home Premium 32Bit
RAD Studio 2009 Pro
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 markieren
1:
2:
3:
4:
5:
6:
var
path: String;
begin
path := ExtractFilePath(Application.ExeName);
//...
end;
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 15841
Erhaltene Danke: 741

XP, W7 x64 (Chrome, IE9, FF), Debian, (OSX 10.7)
RAD XE 2, Java (NB), C++, C# (VS 2010), JS/HTML, 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.
 
Antworten mit Zitat Beitrag melden
Private Nachricht sendenPosting in privater Nachricht zitieren
home home