2011-07-08 101 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"