Я пытаюсь запустить слово из приложения С#, передавая в качестве аргумента файл, который находится в сетевой папке с пробелами. Я искал и могу найти только рабочие примеры с файлами с пробелами только в локальном хранилище, а не в сетевых ресурсах.
Мне удалось только сопоставить сетевой ресурс с буквой, например:
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 с его свойством Arguments, и никакая комбинация, которую я пробовал, не работает. Этот вопрос должен помочь всем, кому приходится возиться с файлами с пробелами в сетевых ресурсах.
"\"\\\\mar-fp01\\...
работает лучше? - person Damien_The_Unbeliever   schedule 20.11.2015