Je travaille sur un lecteur multimédia en C #, mais lorsque je veux faire mon test, j'ai un problème.
Je dois créer une nouvelle chanson d'objet avec le chemin suivant:
@"C:\Users\Jesus Antonio\Desktop\JukeboxV2.0\JukeboxV2.0\Datos\ich will.mp3"
Cela fonctionne, mais lorsque je change d’ordinateur, je dois réécrire le chemin complet. Mon projet s’appelle JukeboxV2.0.
Dans Java Je me souviens que vous pouvez simplement écrire le chemin par exemple
@"JukeboxV2.0\JukeboxV2.0\Datos\ich will.mp3"
Cela économisera beaucoup de temps car je peux utiliser mon projet sur différents ordinateurs et que cela fonctionne, mais ici, je ne sais pas comment faire cela, personne ne le sait?
Vous feriez quelque chose comme ceci pour obtenir le chemin "Data\ich_will.mp3" dans votre dossier d'environnements d'application.
string fileName = "ich_will.mp3";
string path = Path.Combine(Environment.CurrentDirectory, @"Data\", fileName);
Dans mon cas, il retournerait ce qui suit:
C:\MyProjects\Music\MusicApp\bin\Debug\Data\ich_will.mp3
J'utilise Path.Combine
et Environment.CurrentDirectory
dans mon exemple. Celles-ci sont très utiles et vous permettent de créer un chemin basé sur l’emplacement actuel de votre application. Path.Combine
combine deux chaînes ou plus pour créer un emplacement, et Environment.CurrentDirectory
vous fournit le répertoire de travail de votre application.
Le répertoire de travail n’est pas nécessairement le même chemin que celui où se trouve votre executable
, mais dans la plupart des cas, il devrait l'être, sauf indication contraire.
Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"JukeboxV2.0\JukeboxV2.0\Datos\ich will.mp3")
répertoire de base + votre nom de fichier
Je faisais face à un problème similaire, j'avais un fichier sur mon projet et je voulais tester une classe qui devait gérer le chargement de fichiers depuis le FS et les traiter d'une certaine manière. Ce que j'ai fait était :
test.txt
à mon projet de testalt-enter
(propriétés du fichier)BuildAction
sur Content
et Copy to Output Directory
sur Copy if newer
, je suppose que Copy always
l'aurait également faitpuis sur mes tests je devais simplement Path.Combine(Environment.CurrentDirectory, "test.txt")
et voilà. Chaque fois que le projet est compilé, il copie le fichier (ainsi que tout son chemin parent, au cas où il se trouverait dans un dossier, par exemple) dans le dossier bin\Debug
(Ou quelle que soit la configuration utilisée).
Espère que cela aide quelqu'un