运行 exe 文件在 C# 中仍处于打开状态
Run exe file while it is still open in C#
目前我在做以下事情:
- 在资源文件中包含一个 EXE 文件。
- 在运行时,我提取 EXE 文件并将其写入 HDD 上的文件,使用 "DeleteOnClose" 选项。
- 显然我没有关闭文件,所以它保留在磁盘上。
- 我转到路径并双击它,但它拒绝打开。
- 如果我使用 "Process.Start" 我得到文件不存在的错误,尽管它在给定的路径中。
- 我将 FileShare 和 FileAccess 设置为 ReadWrite。
- 同样 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");
目前我在做以下事情:
- 在资源文件中包含一个 EXE 文件。
- 在运行时,我提取 EXE 文件并将其写入 HDD 上的文件,使用 "DeleteOnClose" 选项。
- 显然我没有关闭文件,所以它保留在磁盘上。
- 我转到路径并双击它,但它拒绝打开。
- 如果我使用 "Process.Start" 我得到文件不存在的错误,尽管它在给定的路径中。
- 我将 FileShare 和 FileAccess 设置为 ReadWrite。
- 同样 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");