Si j'ai une chaîne disant "abc.txt"
, existe-t-il un moyen rapide d'obtenir une sous-chaîne qui est simplement "abc"
?
Je ne peux pas faire de fileName.IndexOf('.')
parce que le nom du fichier pourrait être "abc.123.txt"
ou quelque chose du genre et que je souhaite évidemment simplement supprimer l’extension (c.-à-d. "abc.123"
).
La méthode Path.GetFileNameWithoutExtension
vous donne le nom du fichier que vous transmettez en tant qu'argument sans extension, comme cela devrait être évident à partir du nom.
Il existe une méthode dans le cadre à cet effet, qui garde le chemin complet à l'exception de l'extension.
System.IO.Path.ChangeExtension(path, null);
Si seul le nom de fichier est nécessaire, utilisez
System.IO.Path.GetFileNameWithoutExtension(path);
Vous pouvez utiliser
string extension = System.IO.Path.GetExtension(filename);
Et puis supprimez l'extension manuellement:
string result = filename.Substring(0, filename.Length - extension.Length);
String.LastIndexOf fonctionnerait.
string fileName= "abc.123.txt";
int fileExtPos = fileName.LastIndexOf(".");
if (fileExtPos >= 0 )
fileName= fileName.Substring(0, fileExtPos);
Si vous voulez créer un chemin complet sans extension, vous pouvez faire quelque chose comme ceci:
Path.Combine( Path.GetDirectoryName(fullPath), Path.GetFileNameWithoutExtension(fullPath))
mais je cherche un moyen plus simple de le faire. Est-ce que quelqu'un a une idée?
J'ai utilisé le code ci-dessous, moins
string fileName = "C:\file.docx";
MessageBox.Show(Path.GetDirectoryName(fileName)+"\\"+Path.GetFileNameWithoutExtension(fileName));
si vous souhaitez utiliser l'opération String, vous pouvez utiliser la fonction lastIndexOf (), qui recherche la dernière occurrence d'un caractère ou d'une sous-chaîne. Java possède de nombreuses fonctions de chaîne.
Vous ne demandez peut-être pas à l'API UWP. Mais dans UWP, file.DisplayName
est le nom sans extensions. Espoir utile pour les autres.