Удаление определенного участка пути

#c#-4.0

#c #-4.0

Вопрос:

У меня есть несколько путей, например, в памяти (содержащихся в ArrayList):

C:Program FilesProductfile.xml

Что я хочу сделать, так это удалить ‘C:Program Файлы’ из пути, так что просто ‘Productfile.xml ‘. Я знаю, что мог бы сделать это, просто заменив ‘C:Program Файлы «с помощью», но проблема возникает, когда у меня есть пути из локализованной среды, например, немецкого, где путь становится:

C:ProgrammeProductfile.xml

Есть предложения о том, как это сделать?

Простым английским языком я хочу удалить все, что находится до второго », включая его.

Спасибо.

Комментарии:

1. Почему -1, я думаю, мое объяснение / вопрос довольно ясны???

2. Я не ответил -1 на ваш вопрос. Кстати, вы последовали моему предложению выше?

3. Я использовал решение Гейба, приведенное ниже, я всегда очень боялся использования регулярных выражений 😉

Ответ №1:

Если вы хотите использовать все после второй обратной косой черты, используйте это:

 path.Substring(path.IndexOf('\', path.IndexOf('\')   1)   1)
  

Если все, что вы хотите сделать, это убрать все после предпоследней обратной косой черты, используйте это:

 path.Substring(path.LastIndexOf('\', path.LastIndexOf('\') - 1)   1)
  

Ответ №2:

У меня нет Visual Studio на этом компьютере, поэтому я не могу проверить, но это должно быть что-то в этом роде:

 myString.Substring(myString.IndexOf('\', myString.IndexOf('\')))
  

Возможно, вам потребуется добавить » 1″ после этого второго вызова indexOf, чтобы заставить его выполнять поиск в нужном месте, хотя