Вы не помещаете кавычки вокруг строки, которую передаете в конструктор StreamReader.Кавычки используются только при использовании, скажем, командной строки.Или что-нибудь еще, что использует пробелы в качестве разделителей между аргументами.Программа требует, чтобы эти двойные кавычки распознавали аргумент со встроенным пробелом.
Здесь нет необходимости, здесь нет двусмысленности, поскольку аргумент принимает путь только к одному файлу.Единственное исключение из этого правила, о котором я знаю, это свойство ProcessStartInfo.Arguments.
Итак, просто поместите одинарные двойные кавычки вокруг строки, синтаксис, который требуется компилятору.Ваша настоящая проблема - название папки.Проводник Windows показывает другое имя для папок в каталоге c: \ users \ public.Например, c: \ users \ public \ videos отображается в окне проводника как «Общедоступные видео».Он пытается быть полезным, расширяя сокращенное название.Однако ваша программа должна использовать имя папки real .Это, вероятно, «пользователи», а не «публичные пользователи».Чтобы узнать наверняка, используйте командную строку (cmd.exe).Используйте cd \users\public
и dir /a
.
И последнее, но не менее важное: эта папка имеет другое имя в разных версиях Windows.Вы должны использовать Environment.GetFolderPath ().«Общедоступные пользователи» не являются стандартным именем папки, однако не уверен, почему вы используете его.