Directory Path Parsing

using System;

using System.Collections.Generic;

using System.Text;

using System.Collections;

using System.Text.RegularExpressions;

 

namespace ConsoleApplication1

{

    class Program

    {

        static void Main(string[] args)

        {

            string directoryPath = @"C:\a\b\c\..\.\..\g\.";

            //Expected Output = "C:\a\g

            List<string> folderStack = new List<string>();

            Regex reg = new Regex(@"\\");

            string[] directoryArray = reg.Split(directoryPath);

            for (int i = 0; i < directoryArray.Length; i++)

            {

                if (directoryArray[i] != "." && directoryArray[i] != "..")

                {

                    folderStack.Add(directoryArray[i].ToString());

                }

                else if (directoryArray[i] == "..")

                {

                    if (folderStack.Count > 0)

                    {

                        folderStack.RemoveAt(folderStack.Count – 1);

                    }

                }

            }

            //Print the folder stack

            for (int i = 0; i < folderStack.Count; i++)

            {

                if (i < folderStack.Count – 1)

                {

                    Console.Write(folderStack[i].ToString() + @"\");

                }

                else

                {

                    Console.Write(folderStack[i].ToString());

                    Console.WriteLine();

                }

            }

        }

    }

}
 
C:\a\g
Press any key to continue . . .
Advertisements
This entry was posted in Information Technology. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s