I have the multiple level path of a filename, and I want to pull out just the immediate parent directory name of this file.

Example: Filename = "c:\temp\extra\test\myfile.txt"
How can I get "test" from this string ?

Thanks in advance

Solved myself

What I was trying to do was dynamically build a menu item for each
langauge that was added to the application. Each language gets is own directory example: en-US, ar-QA, ...
I needed to make sure I had the resource dll in the directory, then determine its name by using the hosting directory. Pass that name to CulturInfo, and build the menu.
The Code snip below was used to populate a combobox, and a version of this used to create my menu items.

string langcode = "";
string startpath = Application.StartupPath;
foreach (string d in Directory.GetDirectories(@startpath))
foreach (string f in Directory.GetFiles(d, "Foo.resources.dll"))
string[] pathparts = d.Split('\\');
int ipaths = pathparts.GetUpperBound(0);
langcode = pathparts[ipaths];
CultureInfo ci = new CultureInfo(langcode);
cbDefaultLangauge.Items.Add(ci.NativeName+ " ("+ci.EnglishName+"):"+langcode);

This is more portable and robust.

string fileName = "C:\someDir\someFile.txt";
string directoryName = Directory.GetParent(fileName).FullName;
Don't bump old threads

I think, this is what you need
C# Syntax (Toggle Plain Text)

string fileName = "C:\someDir\someFile.txt";
string directoryName = Directory.GetParent(fileName).Name;

This article has been dead for over six months. Start a new discussion instead.