c# - 在 C# 中运行仍处于打开状态的 exe 文件

标签 c# file process shared

目前我执行以下操作:

  1. 在资源文件中包含 EXE 文件。
  2. 在运行时,我提取 EXE 文件并将其写入 HDD 上的文件,并使用“DeleteOnClose”选项。
  3. 显然,我没有关闭该文件,因此它保留在磁盘上。
  4. 我转到路径并双击它,但它拒绝打开。
  5. 如果我使用“Process.Start”,我会收到文件不存在错误,尽管它位于给定路径中。
  6. 我将 FileShare 和 FileAccess 设置为 ReadWrite。
  7. 同样,Process.Start 不起作用。

这是我使用的代码:

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.

最佳答案

也许这只是您问题中的拼写错误,但 Process.Start 中的路径不正确。您缺少 @ 符号:

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

关于c# - 在 C# 中运行仍处于打开状态的 exe 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30677236/

相关文章:

c# - NuGet 库匿名发布

multithreading - 在处理网络连接时,有没有办法利用多核?

c# - 在自己的 ServiceCollection 中获取 IConfiguration

c# - 如何提高这个 "file explorer"启动速度?

java.io.FileNotFoundException :(Access is denied) convert byte array to image file

c++ - EndUpdateResource() throws Error 110 在输出位置打开windowsexplorer时系统无法打开指定的设备或文件

c++ - Boost.Interprocess 是否牺牲性能来实现可移植性

process - 我不明白 stdio 缓冲如何与子进程交互

c# - 现有 COM 引用或添加新引用时出错

java - 如何在 java swing 库中浏览文件?