Я хотел бы использовать Path класс, предпочтительно в своем собственном методе полезности или как метод расширения.
string pathWithThumbs = Path.Combine(Path.Combine(Path.GetDirectoryName(path), "thumbs"), Path.GetFileName(path));
Linq кажется неуместным здесь; вы действительно не запрашиваете коллекции. Кроме того, класс Path
обрабатывает большую часть разрезов и угловых случаев для вас автоматически.
EDIT: Как @juharr отметил, что 4.0 есть удобная перегрузка, что делает его еще проще:
string pathWithThumbs = Path.Combine(Path.GetDirectoryName(path), "thumbs", Path.GetFileName(path));
EDITx2: Hrrrm как @DiskJunky указывает, это использование Путь будет фактически поменять местами слеша для обратных косых черт, так что просто бросьте вызов Replace("\\", "/")
.
Почему вы используете linq, а не только метод String Insert? –
Зачем вам использовать ссылку, а не только хороший класс утилиты «Путь», предназначенный для того, чтобы помочь делать вещи именно так? 'string pathWithThumbs = Path.Combine (Path.Combine (Path.GetDirectoryName (path)," thumbs "), Path.GetFileName (путь));' –
простая проверка для последнего/(или первого с конца), а затем вставка/thumbs – exexzian