2011-07-08 100 views
2

我尝试使用的Process.Start(启动一个新的进程),当我通过在使用的Process.Start到共享文件夹

Process.Start("C:\\Documents and Settings\\Upload.exe") 

伟大的工程,但它可以执行文件当我将Upload.exe移动到“网上邻居”下的共享文件夹时,执行相同的操作?我试过

Process.Start("\\Shared Folder\\Upload.exe"); 

但我得到一个Win32Exception。感谢您提前提供任何信息或建议。

+3

UNC表单应该不是\\\\ Computername \\ ShareName \\共享文件夹\\ Upload.exe? –

回答

6

您应该使用UNC路径来访问网络资源。 (当您将文件放在共享路径中时,您的文件将成为网络资源)

UNC路径采用以下形式。

\\ServerName\SharedPath\YourFile.exe 

\\ServerName\D$\SharedPath\YourFile.exe 

其中d $是驱动器号。

在你的情况,你可能需要使用以下

Process.Start(@"\\Server-Name\Shared Folder\Upload.exe"); 

用@符号的字符串的前面,因为你\\将被视为\作为转义字符。

-5

只需将其加载到临时文件夹中,然后在复制完成时运行该文件夹。它不会在性能方面产生巨大影响,因为远程加载无论如何都需要下载整个文件。

+1

如果它有几个依赖项呢? –

+0

这取决于它们是什么,以及是否需要在同一文件夹中的某些DLL,当然它们也需要被复制。 –

+1

这就是我的观点 - 如果你事先不知道他们是什么,这种方法将无法很好地发挥作用。 –

4

尝试之一:"\\\\Shared Folder\\Upload.exe"@"\\Shared Folder\Upload.exe"