こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

c# 他プロセス起動 リダイレクト(入力) バイナリファイルの場合

現在、c#で他プロセスを起動させるプログラムを組んでいるのですが、リダイレクトでつまづいています。
(コンパイルが出来ない->どう記述すれば良いのか分からない。)

ファイルストリームのReadはデータをByteの配列に格納しますが、リダイレクト入力のwriteはcharの配列を引数としているみたいで、どう記述すれば良いのか分かりません。

記述方法または参考URLを教えていただけないでしょうか?

--source--
 System.IO.Stream retstream = new FileStream(wkPath, FileMode.Open, FileAccess.Read, FileShare.Read);
 System.Diagnostics.Process myProcess = new System.Diagnostics.Process();

 myProcess.StartInfo.FileName = "C:\\Program Files\\proc\\process.exe";

 myProcess.StartInfo.UseShellExecute = false;
 myProcess.StartInfo.RedirectStandardInput = true;
 myProcess.StartInfo.RedirectStandardOutput = true;

 if (strmInput.Length > 0) {
  int num = 0;
  byte[] bufWk = new byte[65536];

  while (true) {
   num = strmInput.Read(bufWk, 0, bufWk.Length);
   if (num == 0) {
    break;
   }
   myProcess.StandardInput.Write(bufWk, 0, num); //←コンパイルエラー
  }
 }

--エラー内容--
System.IO.TextWriter.Write(char[], int, int)' に最も適しているオーバーロード メソッドには無効な引数がいくつか含まれています。
引数 '1': 'byte[]' から 'char[]' に変換できません。

投稿日時 - 2010-02-05 20:24:13

QNo.5651947

困ってます

質問者が選んだベストアンサー

未検証。動くかどうか知らない

http://msdn.microsoft.com/en-us/library/system.io.streamwriter.basestream.aspx
StreamWriterはBaseStreamプロパティをもち、
Streamクラスは
http://msdn.microsoft.com/en-us/library/system.io.stream.write.aspx
byte配列を引数に持つ、writeメソッドを持つ。

投稿日時 - 2010-02-05 20:33:00

お礼

うまくいきました。
ありがとうございます。

投稿日時 - 2010-02-08 10:11:13

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問