En utilisant des chemins relatifs sans chemin d'accès de base spécifié (. I.e. par rapport au répertoire courant) est généralement une mauvaise idée.
La seule exception commune dont je puisse parler est les chemins relatifs passés en tant que paramètre de ligne de commande dans une application.
En particulier le répertoire courant n'est pas identique au répertoire de l'application. Il peut s'agir de n'importe quel répertoire au démarrage, et les boîtes de dialogue communes (en fonction de leurs indicateurs) peuvent le modifier. De plus, il s'agit d'un processus par processus et non par variable de thread, un autre thread peut donc le modifier à tout moment.
Je recommande fortement la création d'un chemin absolu de votre chemin relatif avant d'y accéder (voir le poste de Dog Ears pour savoir comment faire)
Eh oui, vous n'avez pas utilisé réellement un chemin. OpenFileDialog.RestoreDirectory a tendance à être pertinent. –
-1 Comment cette question est différente de celle-ci: http://stackoverflow.com/questions/4433834 ou même celle-ci: http://stackoverflow.com/questions/4405477 ??? Devons-nous continuer à deviner jusqu'à ce que nous sachions dans quel dossier se trouve votre Fireball.wav? Ou essayez-vous de le faire dans une application web et ne pas poser tout à fait raison? –
également, il s'agit d'un problème .NET SoundPlayer, pas un problème C# SoundPlayer. –