Question: I have a filepath say "C:\hello\hi\dotnet\abc.txt". I just want the directories from the path.

Expected Output :

```
hello
hi
dotnet

```

I have used `Path.DirectorySeparatorChar` but it doesn't work.So help me out to solve this problem.

Answer: 
use (**EDIT as per comments**)  

```
string YourFilePath = @"C:\hello\hi\dotnet\abc.txt";
string[] YourResult = Path.GetDirectoryName (YourFilePath).Split (new char[] {Path.DirectorySeparatorChar}).Skip(1).ToArray();

```

And this is the result:  

`YourResult[0]` contains hello  

`YourResult[1]` contains hi  

`YourResult[2]` contains dotnet  

For MSDN references see:  

* <http://msdn.microsoft.com/en-us/library/system.io.path.getdirectoryname.aspx>
* <http://msdn.microsoft.com/en-us/library/system.io.path.directoryseparatorchar.aspx>
* <http://msdn.microsoft.com/en-us/library/b873y76a.aspx>
* <http://msdn.microsoft.com/en-us/library/bb358985.aspx>
* <http://msdn.microsoft.com/en-us/library/bb298736.aspx>
You can use this function

```
IEnumerable<string> GetDirectories(string path)
{                        
    DirectoryInfo di = new DirectoryInfo(path);

    yield return di.Name;
    if (di.Parent == null)
       yield break;
    foreach (var dir in GetDirectories(di.Parent.FullName))
    {
       yield return dir;
    }           
}

```

using:

```
string path = Assembly.GetExecutingAssembly().Location;
foreach(var dir in GetDirectories(path).Reverse())
      Console.WriteLine(dir);

```