Это, кажется, очень странная проблема, которую я не могу понять для жизни меня. У меня есть путь (строка), который выглядит следующим образом:Проблема с проверкой конца строки
D: \ развитие \ PHP \ bchat \ чат \ index.php
мне нужно проверить, если файл в вопросе является PHP файл. Я считаю, что наиболее логичным способом является подстрока, начиная с. до конца строки и посмотреть, если это == .php
Так я пробовал:
bool isphp = (path.Substring(path.LastIndexOf('.')) == ".php") ? true : false;
Это всегда возвращает ложь. Я подумал, что, может быть, в конце было конечное пространство, которое меня заворачивало, поэтому я поставил перед ним TrimEnd(). Но это ничего не изменило. Поэтому я пробовал это:
bool isphp = (path.EndsWith(".php") == true) ? true : false;
Это также всегда возвращает false.
EDIT Теперь я также попытался это:
bool isphp = (Path.GetExtension(path) == ".php");
Но это также возвращает ложь.
Пожалуйста, не проверяйте bool для значения bool, а затем выберите еще один bool. Просто сделайте bool isphp = php.EndsWith (". Php"); (если вы хотите использовать сравнение строк для этого, в противном случае см. ответы ниже) –
Тривиальная точка, но (путь.EndsWith (". php") == true)? true: false; может быть сконденсирован в path.EndsWith (". Php"), который возвращает true или false. – spender
Nitpickers выше, вы можете ясно видеть, что он тестировал, и поэтому изменил свой первый код, чтобы получить второй, поэтому была избыточность. –