C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: 埋め込みリソースをコピー


(過去ログ 60 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■34647 / inTopicNo.1)  埋め込みリソースをコピー
  
□投稿者/ ぱんださん (1回)-(2009/04/04(Sat) 20:22:03)

分類:[C#] 

開発環境 C# 2008 Express、.NET Framework2.0
埋め込んだWAVEリソースファイル(hoge.wav)を指定した場所にコピーしたいので、

        private void button0_Click(object sender, EventArgs e)
        {
            System.Reflection.Assembly asm = System.Reflection.Assembly.GetExecutingAssembly();
            string resourceName = asm.GetName().Name + ".hoge.wav";
            byte[] bs = System.IO.File.ReadAllBytes(resourceName);
            string fileName = @"C:\hoge.wav";
            System.IO.FileStream fs = new System.IO.FileStream(fileName, System.IO.FileMode.Create, System.IO.FileAccess.Write);
            fs.Write(bs, 0, bs.Length);
            fs.Close();
        }

としてデバッグしてボタンを押すと、

FileNotFoundExceptionはバンドルされませんでした。
ファイル 'C:\Documents and Settings\○○\My Documents\Visual Studio 2008\Projects\test\test\bin\Debug\test.hoge.wav' が見つかりませんでした。

とエラーがでて、コピーできませんでした。
コピーするには、どこをどのように書き換えればいいのでしょうか?
よろしくお願いします。

引用返信 編集キー/
■34649 / inTopicNo.2)  Re[1]: 埋め込みリソースをコピー
□投稿者/ オショウ (139回)-(2009/04/04(Sat) 21:05:02)
> とエラーがでて、コピーできませんでした。
> コピーするには、どこをどのように書き換えればいいのでしょうか?

  http://dobon.net/vb/dotnet/programing/playembeddedwave.html

  ここの『一時ファイルに保存する』のコードサンプルと
  若干相違しますネ!

  一度試してみて下さい。

以上。
引用返信 編集キー/
■34650 / inTopicNo.3)  Re[1]: 埋め込みリソースをコピー
□投稿者/ よねKEN (310回)-(2009/04/04(Sat) 21:11:31)
> private void button0_Click(object sender, EventArgs e)
> {
> System.Reflection.Assembly asm = System.Reflection.Assembly.GetExecutingAssembly();
> string resourceName = asm.GetName().Name + ".hoge.wav";

Stream s = asm.GetManifestResourceStream(resourceName);
でStreamが取得できるので、そこからデータを読み出して、そのデータをファイルに書き出せばよいのではないでしょうか。


> byte[] bs = System.IO.File.ReadAllBytes(resourceName);

File.ReadAllBytesはファイルからのデータの読み出しなので、今回の場合には使えませんね。
resourceNameはファイルのパスではありませんし。

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -