以下のコードが.exeと同じディレクトリにあるFireball.wavファイルを再生することを期待していました。.NET SoundPlayer Question
SoundPlayer simpleSound = new SoundPlayer(@"Fireball.wav");
simpleSound.Play();
私は間違ったファイルパスを設定していると思います。
以下のコードが.exeと同じディレクトリにあるFireball.wavファイルを再生することを期待していました。.NET SoundPlayer Question
SoundPlayer simpleSound = new SoundPlayer(@"Fireball.wav");
simpleSound.Play();
私は間違ったファイルパスを設定していると思います。
あなたはこのような何か行うことができます:指定されたベース・パスなしで相対パスを使用して
var path = Path.Combine(
Path.GetDirectoryName(Application.ExecutablePath)
,"Fireball.wav");
SoundPlayer simpleSound = new SoundPlayer(path);
simpleSound.Play();
+1。 Path.Combine() –
OK、Path.Combine()が追加されました。 –
これは問題ありませんが、ファイルがアプリケーションのローカルであることを前提としています。 OPとリンクへの私のsnarkyコメントをチェックしてください。 OPがWeb世界の相対的なフォルダとデスクトップアプリケーションのパスの間で混乱しているのではないかと思うのですか? –
を(すなわち、現在のディレクトリからの相対。)通常は悪い考えです。
私ができることの1つの共通の例外は、アプリケーションにコマンドラインパラメータとして渡される相対パスです。
特に、現在のディレクトリはアプリケーションディレクトリと同一ではありません。これは起動時の任意のディレクトリにすることができ、一般的なダイアログ(フラグに依存)はそれを変更することができます。さらに、スレッドごとの変数ではなく、プロセスごとであるため、別のスレッドがいつでも変更する可能性があります。
は、だから私は非常にそれにアクセスする前に、あなたの相対パスから絶対パスを作成することをお勧めし
うん(それを行う方法については、犬の耳の記事を参照してください)、あなたは実際のパスを使用していませんでした。 OpenFileDialog.RestoreDirectoryは関連性があります。 –
-1この質問は、この質問とどのように違うのですか:http://stackoverflow.com/questions/4433834またはこれも:http://stackoverflow.com/questions/4405477 ??? Fireball.wavがどのフォルダにあるのか把握するまで、推測を続けていますか?それとも、Webアプリでこれをやろうとしているのですか? –
また、これは.NET SoundPlayerの問題であり、C#SoundPlayerの問題ではありません。 –