Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   MediaPlayer Dateipfade (https://www.delphipraxis.net/195673-mediaplayer-dateipfade.html)

Demyxa 16. Mär 2018 15:19

MediaPlayer Dateipfade
 
Mein Plan ist es, die Musik und Soundeffekte die genutzt werden, nicht innerhalb des Ordners zu halten, in welchem die .exe ist.
Ich habe einen Subordner namens "sounds" und habe dort alles von .mp3 und .wav dahin geschubst und jetzt kommt die magische Frage:

Wie kann ich auf diese Zugreifen, ohne direkt den ganzen Dateipfand "C:\Users\Ben\Desktop\Neuer Ordner (3)\sound" einzufügen?
"\sounds\name.mp3" à la HTML5 tuts leider nicht.

Ich habe vor, dieses Projekt im größeren Raum zu veröffentlichen, und wenn ich die Dateien im Ordner der .exe lasse, sieht das unprofessionell aus.
Aber wenn ich den gesamten Dateipfad angeben muss, ist das Projekt auf anderen Computern nicht ausführbar.
(Es sei denn natürlich, Delphi schreibt sich selbst um und passt den Dateipfad selber an...)

günni0 16. Mär 2018 15:21

AW: MediaPlayer Dateipfade
 
Versuch mal
Delphi-Quellcode:
ExtractFilePath(Application.ExeName) + 'sounds/musik.mp3'

Delphi.Narium 16. Mär 2018 15:39

AW: MediaPlayer Dateipfade
 
".\sounds\name.mp3" sollte funktionieren.

. ist das Verzeichnis, in dem sich die Exe befindet.
sounds ist dann ein Verzeichnis unterhalb dieses Verzeichnisses, gefolgt vom Dateinamen.

günni0 16. Mär 2018 15:55

AW: MediaPlayer Dateipfade
 
Nur noch was dazu
Zitat:

"\sounds\name.mp3" à la HTML5 tuts leider nicht.
Das kann nicht funktionieren, weil selbst in html würdest du damit im Root-Verzeichnis des Datenträgers landen.

Klaus01 16. Mär 2018 15:59

AW: MediaPlayer Dateipfade
 
..der kleine Punkt vor dem Backslash macht den Unterschied.

Grüße
Klaus

günni0 16. Mär 2018 16:01

AW: MediaPlayer Dateipfade
 
. = aktuelles Verzeichnis
.. = ein Verzeichnis zurück
..\..\ = zwei Verzeichnisse zurück usw.

Wusste ich gar nicht, dass man mittlerweile .\ benutzen kann statt ExtractFilePath.

freimatz 16. Mär 2018 16:18

AW: MediaPlayer Dateipfade
 
Zitat:

Zitat von Delphi.Narium (Beitrag 1396347)
"
. ist das Verzeichnis, in dem sich die Exe befindet.

Nur wenn gilt:

Zitat:

Zitat von günni0 (Beitrag 1396352)
. = aktuelles Verzeichnis


Delphi.Narium 16. Mär 2018 16:30

AW: MediaPlayer Dateipfade
 
@freimatz

ja, das stimmt, meine Formulierung war unpräzise.

Meine Programme laufen normalerweise ohne Installation vom USB-Stick. Und dort habe ich mir angewöhnt, beim Programmstart ein
Delphi-Quellcode:
 
...
  fAppDir := ExtractFilePath(Application.ExeName);
  ChDir(fAppDir);
...
einzubauen, damit das mit den .\diversePfadangaben funktioniert.

Darüber hab' ich (fast) vergessen. dass . das aktuelle Verzeichnis ist und dieses nicht zwingend mit dem Verzeichnis der Exe übereinstimmt.

@günni0

.\ ging, wenn ich mich recht erinnere, schon zu DOS-(also vor Windows-)Zeiten.

bnreimer42 16. Mär 2018 16:32

AW: MediaPlayer Dateipfade
 
Naja, "." ist das CurrentDirectory.

Das kann man mindestens im Shortcut oder im ShellExecute setzen oder auch durch ein chdir-Aufruf (Zumindest ging das früher, habe das länger nicht gemacht)

ExtractFilePath(ParamStr(0)) ist sicherer als "."

Rollo62 17. Mär 2018 08:22

AW: MediaPlayer Dateipfade
 
https://stackoverflow.com/questions/...aths-in-delphi


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