Cela semble être un problème très étrange que je ne peux pas comprendre pour la vie de moi. J'ai un chemin (string) qui ressemble à ceci:Problème Vérification de la fin d'une chaîne
D: \ développement \ php \ bchat \ le chat \ index.php
Je dois vérifier si le fichier en question est un PHP fichier. Je pense que la façon la plus logique est de prendre une sous-chaîne à partir de. à la fin de la chaîne et de voir si elle == .php
donc j'ai essayé:
bool isphp = (path.Substring(path.LastIndexOf('.')) == ".php") ? true : false;
Ce toujours retourne faux. Je pensais que peut-être il y avait un espace de fin à la fin me foutant donc je mis un TrimEnd() sur le chemin avant. Mais cela n'a rien changé. Alors j'ai essayé ceci:
bool isphp = (path.EndsWith(".php") == true) ? true : false;
Cela renvoie également toujours faux.
EDIT J'ai maintenant aussi essayé ceci:
bool isphp = (Path.GetExtension(path) == ".php");
Mais cela renvoie aussi faux.
Veuillez ne pas vérifier un bool pour une valeur de bool, puis choisissez un autre bool. Faites simplement bool isphp = php.EndsWith (". Php"); (Si vous voulez utiliser une comparaison de chaînes pour cela, sinon voir les réponses ci-dessous) –
Point trivial, mais (path.EndsWith (". php") == true)? vrai faux; peut être condensé à path.EndsWith (". Php"), ce qui renvoie true ou false. – spender
Nitpickers ci-dessus, vous pouvez clairement voir qu'il testait, et ainsi modifié son premier code pour obtenir le second, ce qui explique pourquoi il y avait redondance. –