AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Aktuelles Verzeichnis

Ein Thema von Martin K · begonnen am 31. Jul 2006 · letzter Beitrag vom 2. Aug 2006
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#1

Aktuelles Verzeichnis

  Alt 31. Jul 2006, 23:49
Hi,

wie erhalte ich das aktuelle Verzeichnis?
Also allgemein das Verzeichnis, nicht speziell auf eine Anwendung bezogen wie GetCurrentDir.

Bei mir ist das aktuelle Verzeichnis (wenn ich bei Start->Ausführen "" eingebe) identisch mit %HomePath%, also:
C:\Dokumente und Einstellungen\Martin Kluge

Ist das immer so ?
Wie kann ich generell das aktuelle Verzeichnis mit Delphi auslesen ?
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Aktuelles Verzeichnis

  Alt 31. Jul 2006, 23:52
GetCurrentDir liefert das aktuelle Verzeichnis.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Aktuelles Verzeichnis

  Alt 31. Jul 2006, 23:55
GetCurrenDir liefert mir das Verzeichnis, in dem meine Anwendung gestartet wurde.

z.B. Wenn ich die Eingabeaufforderung starte, ist das Verzeichnis auch immer
C:\Dokumente und Einstellungen\Martin Kluge.
Oder über Start->Ausführen
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Aktuelles Verzeichnis

  Alt 31. Jul 2006, 23:59
Moin Martin,

Zitat von Martin K:
GetCurrenDir liefert mir das Verzeichnis, in dem meine Anwendung gestartet wurde.
dann benutze mal eine Öffnen- oder Speicherndialog mit Auswahl einer Datei aus einem anderen Verzeichnis, und lass' Dir dann noch mal das akutelle Verzeichnis mit GetCurrentDir anzeigen.

[EDIT]
Oder starte das Programm über einen Link oder ShellExecuteEx, wobei Du das Arbeitsverzeichnis angibst.
Natürlich darf das Arbeitsverzeichnis nicht das des Programmes sein
[/EDIT]
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Aktuelles Verzeichnis

  Alt 1. Aug 2006, 00:00
GetCurrentDir öffnet denke ich mal das Arbeitsverzeichnis.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Aktuelles Verzeichnis

  Alt 1. Aug 2006, 00:06
Das ist mir schon klar.
Zitat von Martin K:
GetCurrenDir liefert mir das Verzeichnis, in dem meine Anwendung gestartet wurde.
Damit meine ich ja das Verzeinis, wo die Anwendung gestartet wurde nicht wo die EXE liegt.
Meinetwegen heißt das Arbeitsverzeichnis.

Vielleicht muss ich die Frage anders formulieren:
Warum verwendet Start ->Ausführen als Arbeitsverzeichnis %HomePath% ?
Ist das immer so?
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Benutzerbild von Michael Habbe
Michael Habbe

Registriert seit: 10. Aug 2005
264 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Aktuelles Verzeichnis

  Alt 1. Aug 2006, 00:36
Mit GetCurrentDir bekommst Du den Inhalt einer globalen (Windows-)Variable, welches das aktuell eingestellte Verzeichnis enthält. Du kannst dieses mit SetCurrentDir verändern. Alle Programme, die nur mit GetCurrentDir z.B. ihr Datenverzeichnis abfragen kannst Du hiermit zum Abschmieren bringen.

Wenn Du also wichtige Datenpfade ermittelst, nehme niemals GetCurrentDir dazu (Erfahrungswerte, lange Debugsitzungen ).

Wenn Du den Pfad Deiner Anwendung ermitteln willst, unabhängig davon, wie oder wo sie gestartet wurde, benutze "ExtractFilePath(ParamStr(0))". Da steht alles drin.
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Aktuelles Verzeichnis

  Alt 1. Aug 2006, 14:37
Zitat von Michael Habbe:
Mit GetCurrentDir bekommst Du den Inhalt einer globalen (Windows-)Variable, welches das aktuell eingestellte Verzeichnis enthält. Du kannst dieses mit SetCurrentDir verändern. Alle Programme, die nur mit GetCurrentDir z.B. ihr Datenverzeichnis abfragen kannst Du hiermit zum Abschmieren bringen.
Das denke ich nicht.
IMHO hat jede laufende Anwendung sein eigenes CurrentDir und es gibt kein globales.
Bzw. ich dachte es gäbe ein globales, (z.B. bei Start->Ausführen = %HomePath%) aber anscheinend ist das nicht so.
Auf jeden Fall bekommt man das globale Arbeitsverzeichnis - falls es ein solches geben sollte - nicht mit GetCurrentDir.

Getestet:
Einfach zwei Delphi-Programme starten, in einem wird per ButtonClick GetCurrentDir ausgelesen und in dem anderen mit SetCurrentDir z.B. das Arbeitsverzeichnis auf C:\ festgelegt.
Lege ich das Arbeitsverzeichnis fest, hat sich aber GetCurrentDir im anderen Programm nicht geändert!
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Aktuelles Verzeichnis

  Alt 1. Aug 2006, 14:44
Einfach im PSDK nachgucken:
Zitat:
The GetCurrentDirectory function retrieves the current directory for the current process.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Aktuelles Verzeichnis

  Alt 1. Aug 2006, 14:49
Eben:
Zitat:
[...] for the current process.
Meine Frage war, ob es ein globales CurrentDir gibt, also systemweit.
(anscheinend nicht...)

//Edit:
Aber trotzdem danke an alle, für eure Bemühungen
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:53 Uhr.
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