Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 未完全复制打开的exe文件_C# - Fatal编程技术网

C# 未完全复制打开的exe文件

C# 未完全复制打开的exe文件,c#,C#,我使用下面的代码行将打开的exe复制到另一个文件夹(windows启动) 但问题是我的exe大小是16MB,复制的是12KB。那么,如果exe处于打开状态,如何完整复制它呢。我说如果exe是打开的,那么它就不能被完全复制。所以,当应用程序第一次运行时,我必须将exe添加到启动文件夹中 这里的答案建议使用卷影复制: 但我不确定卷影副本是否始终可用 您正在尝试让程序在Windows启动时启动吗?如果是这样,您可以在不复制的情况下执行此操作: 或者,如果确实需要复制,则可以确保程序尚未运行,如果正

我使用下面的代码行将打开的exe复制到另一个文件夹(windows启动)


但问题是我的exe大小是16MB,复制的是12KB。那么,如果exe处于打开状态,如何完整复制它呢。我说如果exe是打开的,那么它就不能被完全复制。所以,当应用程序第一次运行时,我必须将exe添加到启动文件夹中

这里的答案建议使用卷影复制:

但我不确定卷影副本是否始终可用

您正在尝试让程序在Windows启动时启动吗?如果是这样,您可以在不复制的情况下执行此操作:

或者,如果确实需要复制,则可以确保程序尚未运行,如果正在运行,请用户先停止:

编辑:

我在MSDN中的注册表文档中没有发现工作目录。可能有两种解决方法: 1.如果可执行文件支持,则可以将工作目录作为参数传递。 2.您可以尝试使用注册表中的启动器,例如cmd.exe或powershell:

cmd.exe/c[更改目录并启动exe的批处理文件]

powershell.exe-WindowsStyle隐藏启动进程[exe路径]-工作目录[工作目录] -windowstyle hidden仅适用于Powershell V2。否则,您将获得一个控制台窗口


是的,实际上我想将我的Unity3d应用程序添加到windows startup中,以便它自动运行。但问题是它的exe仅在它旁边的it数据文件夹存在时运行。因此,我必须在windows的启动中添加exe及其数据文件夹。是否有可用的方法以编程方式创建我的exe快捷方式,并将其添加到启动中,以使其正确运行。但我必须打开我的exe才能使其快捷。我注意到,在将打开的exe复制到startup中时,会收到任何异常。在提供的链接@KCWong中,有一个答案描述了如何使用注册表向Windows startup添加快捷方式。这可能会解决您的数据文件夹需求,因为实际上不会出现任何文件。但是,这只是一种解决方法,不能解决此问题中描述的问题。老实说,我有点惊讶,复制一个正在执行的文件是行不通的。
File.Copy(ownPath, Path.Combine(startupFolder, "Player.exe"));