プロが教える店舗&オフィスのセキュリティ対策術

現在、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[]' に変換できません。

A 回答 (1件)

未検証。

動くかどうか知らない

http://msdn.microsoft.com/en-us/library/system.i …
StreamWriterはBaseStreamプロパティをもち、
Streamクラスは
http://msdn.microsoft.com/en-us/library/system.i …
byte配列を引数に持つ、writeメソッドを持つ。
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/02/08 10:11

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!