0
我想從C#應用程序作爲參數傳遞一個網絡共享與空間文件傳遞單詞。我已經搜索過,只能找到帶有空格的文件的工作示例,只在本地存儲空間,而不是網絡共享。Process.Start與網絡共享和空間
我有唯一的成功的網絡共享映射到一個字母,如:
Process.Start("WINWORD.EXE", "\"k:\\coordinacion de apoyo a usuarios\\informes\\2015\\2015-10\\informe octubre 2015.docx\"");
但下面不工作:
Process.Start("WINWORD.EXE", "\"\\mar-fp01\\mar_tecnologia$\\coordinacion de apoyo a usuarios\\informes\\2015\\2015-10\\informe octubre 2015.docx\"");
(K:映射到\ mar- FP01 \ mar_tecnologia $)
而且,我不想硬碼的位置,因爲在現實中,我從得到的文件名:
SaveFileDialog archivo = new SaveFileDialog();
archivo.FileName = "informe "+ months.GetValue(month - 1) + " " + year;
archivo.InitialDirectory = @"\\mar-fp01\mar_tecnologia$\Coordinacion de Apoyo a Usuarios\Informes\" + year + "\\" + year + "-" + monthYear[0].PadLeft(2, '0');
因此,一個適當的解決方案應採取archivo.FileName並做一個最小的轉換爲它的值,以確保Process.Start工作。我曾嘗試使用@分隔符,ProcessStartInfo及其參數屬性,並沒有組合我嘗試過。這個問題應該可以幫助任何人在網絡共享空間中混淆文件。
在使用UNC路徑時,服務器名稱前應該有一個雙反斜槓。 ''\\\\ mar-fp01 \\ ...'還能更好嗎? –
http://stackoverflow.com/questions/952721/problems-launching-a-process-with-process-start-how-do-i-construct-the-argum/952852#952852 –
@Damien_The_Unbeliever是的,它的工作和那幫助我找到解決方案,我只需在archivo.fileName之前和之後添加引號。看到編輯的問題。謝謝! – fjleon