Si j'ai une variable chaîne qui a:
"C:\temp\temp2\foo\bar.txt"
et je veux avoir
"foo"
Quelle est la meilleure façon de procéder?
Si j'ai une variable chaîne qui a:
"C:\temp\temp2\foo\bar.txt"
et je veux avoir
"foo"
Quelle est la meilleure façon de procéder?
Loin de moi l'idée d'être en désaccord avec le Skeet, mais j'ai toujours utilisé
Path.GetFileNameWithoutExtension(@"C:\temp\temp2\foo\bar.txt")
Je soupçonne que FileInfo touche réellement le système de fichiers pour obtenir ses informations, alors que je m'attends à ce que GetFileNameWithoutExtension ne soit que des opérations de chaîne - les performances de l'une par rapport à l'autre pourraient donc être meilleures.
J'ai eu une occasion lorsque je parcourais les répertoires enfants parents
string[] years = Directory.GetDirectories(ROOT);
foreach (var year in years)
{
DirectoryInfo info = new DirectoryInfo(year);
Console.WriteLine(info.Name);
Console.WriteLine(year);
//Month directories
string[] months = Directory.GetDirectories(year);
foreach (var month in months)
{
Console.WriteLine(month);
//Day directories
string[] days = Directory.GetDirectories(month);
foreach (var day in days)
{
//checkes the files in the days
Console.WriteLine(day);
string[] files = Directory.GetFiles(day);
foreach (var file in files)
{
Console.WriteLine(file);
}
}
}
}
en utilisant cette ligne, j'ai pu obtenir uniquement le nom du répertoire actuel
DirectoryInfo info = new DirectoryInfo(year);
Console.WriteLine(info.Name);
Cela dépendra de la façon dont vous souhaitez gérer les données, mais une autre option consiste à utiliser String.Split.
string myStr = @"C:\foo\bar.txt";
string[] paths = myStr.Split('\\');
string dir = paths[paths.Length - 2]; //returns "foo"
Cela ne vérifie pas une exception de tableau hors limites, mais vous avez l'idée.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.