Я пытаюсь запустить слово из приложения C#, передавая в качестве аргумента файл, находящийся в сетевом ресурсе с пробелами. Я искал и могу найти только рабочие примеры с файлами с пробелами только на локальном хранилище, а не на сетевых ресурсах.Process.Start с сетевым ресурсом AND пробелов
я имел только успех, отображающую долю сети в письме, например:
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 будет работать. Я попытался использовать @ delimiter, также ProcessStartInfo с его свойством Arguments и никакой комбинацией, которую я пробовал. Этот вопрос должен помочь любому, кто должен возиться с файлами с пробелами в сетевых ресурсах.
При работе с 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