Как правильно поймать путь/строку?

я ищу наилучшую практику, улавливая возможность того, что путь не начинается с Path1. Что-то вроде path равно "C:\\test\yes", а a.Setting.PathSettings.Path1 равно "C:\test\".

Как мне избежать провала?

String path1 = "C:\test\yes";
String path2 = "C:\test\yes";

pathDir = new FileInfo("C:\\\test\yes\test.txt").Directory.FullName;
pathDir = pathDir.Replace(a.Setting.PathSettings.Path1, a.Setting.PathSettings.Path2);

С уважением


person zirbel    schedule 22.08.2013    source источник
comment
Я не понимаю вашего вопроса. Вы хотите проверить, включает ли ваш путь Path1 или нет?   -  person Soner Gönül    schedule 22.08.2013
comment
могу я спросить, почему это важно? использование жестко закодированных путей - плохая идея, и, например, любые проверки того, на каком конкретном диске находится файл, укажут на не очень хорошее программирование и обработку файлов.   -  person Sayse    schedule 22.08.2013
comment
формат изменился. Я имею в виду, что string.replace не может сравнивать C:\\test с C\test   -  person zirbel    schedule 22.08.2013
comment
Связано ли это с моим последним предложением в этом ответе? C\test не будет допустимым путем   -  person Sayse    schedule 22.08.2013
comment
@sayse немного :), отредактируйте: может быть, теперь это более ясно. Или, может быть, я вижу проблему там, где ее нет :). Какой формат имеет FileInfo.Directory.FullName? И может ли он измениться?   -  person zirbel    schedule 22.08.2013
comment
Я не уверен, что вы пытаетесь сделать, вы можете использовать File.Move для перемещения/переименования файла? взгляните на класс Path для множества полезные методы пути   -  person Sayse    schedule 22.08.2013


Ответы (1)


Вы можете проверить с помощью String.StartsWith

if(path.StartsWith(a.Settings.PathSettings.Path1)
{
  path=path.Replace(a.Setting.PathSettings.Path1, a.Setting.PathSettings.Path2);
}
person MarPa    schedule 22.08.2013