実際には、ソケットを介してexeファイルをコピーしています。クラスを使用してテキストをコピーできますStreamWriter
が、同じコードを使用してexeファイルをコピーすると、目的の名前のexeファイルが作成されましたが、実行できません。「このアプリはお使いの PC では実行できません。」Windows 8 x64 を使用していますが、これは関係ありません。
static void Main(string[] args)
{
TcpClient tcpclient = new TcpClient();
tcpclient.Connect("localhost", 20209);
NetworkStream stm = tcpclient.GetStream();
byte[] buffer = new byte[1024];
var fs = File.Open("F:/aki/RMI/akshay.exe", FileMode.OpenOrCreate, FileAccess.ReadWrite);
var streamWriter = new StreamWriter(fs);
int x;
while ((x=stm.Read(buffer, 0, 1024))>0)
{
**A** streamWriter.Write(buffer);
**B** //streamWriter.Write(Encoding.ASCII.GetString(buffer, 0, buffer.Length));
}
streamWriter.Close();
fs.Close();
Thread.Sleep(2000);
Console.WriteLine("Waiting");
//Console.ReadLine();
tcpclient.Close();
}
AとBの両方の方法を試しましたが、Bはテキストファイルでは機能しますが、exeファイルでは機能しません。解決策はありますか?
または、exeファイルに他のライタークラスを使用する必要がありますか?