Используя относительные пути без указанного базового пути (. То есть по отношению к текущему каталогу), как правило, плохая идея.
Единственное общее исключение, которое я могу сделать, это относительные пути, переданные в качестве параметра командной строки в приложение.
В частности, текущий каталог не идентичен каталогу приложения. Это может быть любой каталог при запуске, а общие диалоги (в зависимости от их флагов) могут изменить его. Кроме того, это процесс, а не переменная потока, поэтому другой поток может изменить его в любое время.
Поэтому я настоятельно рекомендую создать абсолютный путь от своего относительного пути перед доступом к ней (см пост Кинологические Уши для как сделать это)
Да, вы на самом деле не использовать путь. OpenFileDialog.RestoreDirectory имеет тенденцию быть актуальным. –
-1 Как этот вопрос отличается от этого: http://stackoverflow.com/questions/4433834 или даже этот: http://stackoverflow.com/questions/4405477 ??? Должны ли мы продолжать гадать, пока не выясним, в какой папке находится ваш Fireball.wav? Или вы пытаетесь сделать это в веб-приложении и не спрашиваете совершенно правильно? –
также, это проблема .NET SoundPlayer, а не проблема с C# SoundPlayer. –