【发布时间】:2015-06-05 23:24:36
【问题描述】:
目前我执行以下操作:
- 在资源文件中包含一个 EXE 文件。
- 在运行时,我提取 EXE 文件并将其写入 HDD 上的文件,使用“DeleteOnClose”选项。
- 显然 II 不会关闭文件,因此它仍保留在磁盘上。
- 我去路径并双击它,但它拒绝打开。
- 如果我使用“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.
【问题讨论】:
-
不相关,但我会在你的 while 循环中添加一些延迟