在C#中仍然打开时运行exe文件

时间:2015-06-05 23:24:36

标签: c# file process shared

目前我执行以下操作:

  1. 在资源文件中包含EXE文件。
  2. 在运行时我提取EXE文件并将其写入HDD上的文件,其中包含" DeleteOnClose"选项。
  3. 显然,我不会关闭文件,因此它仍保留在磁盘上。
  4. 我去路径并双击它,但它拒绝打开。
  5. 如果我使用" Process.Start"我得到文件不存在错误,虽然它在给定的路径中。
  6. 我将FileShare和FileAccess设置为ReadWrite。
  7. 再次Process.Start不起作用。
  8. 以下是我使用的代码:

    byte[] exeFile =ExeSecure.Properties.Resources.ReqCheck;
    //2) Create file to be deleted on close
    FileStream aFile = new FileStream(@"c:\reco.exe", FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite, 20000, FileOptions.DeleteOnClose);
    //3) Write Exe file content to HDD
    aFile.Write(exeFile, 0, exeFile.Length);
    aFile.Flush();
    Thread.Sleep(100); //Wait a while for file to be flushed
    while (!File.Exists(@"c:\reco.exe")); //Make sure file is there on HDD
        Process.Start("C:\reco.exe");//Start file , this always fails.
    

1 个答案:

答案 0 :(得分:2)

也许这只是您问题中的拼写错误,但Process.Start中的路径不正确。您错过了@标志:

Process.Start(@"C:\reco.exe");