File Stream C#

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
namespace StyleCopContrib.Runner
{
  /// 
  /// A path utility class.
  /// 

  public static class PathUtility
  {
    #region Methods
    /// 
    /// Gets the common root path of the given path list.
    /// 

    /// The list of path.
    /// The common root path.
    public static string GetCommonRootPath(IEnumerable paths)
    {
      string[] commonPathParts = null;
      int commonPartIndex = int.MaxValue;
      foreach (string path in paths)
      {
        if (!Path.IsPathRooted(path))
        {
          throw new InvalidOperationException("Only fully qualified path are supported");
        }
        string[] pathParts = path.Split(Path.DirectorySeparatorChar);
        if (commonPathParts == null)
        {
          commonPathParts = pathParts;
          commonPartIndex = commonPathParts.Length;
        }
        else
        {
          int partIndex = 0;
          while (partIndex < pathParts.Length && partIndex < commonPathParts.Length)
          {
            if (commonPathParts[partIndex].ToUpperInvariant() != pathParts[partIndex].ToUpperInvariant()) break;
            partIndex++;
          }
          commonPartIndex = Math.Min(commonPartIndex, partIndex);
        }
      }
      string commonPath;
      if (commonPartIndex == 0)
      {
        commonPath = string.Empty;
      }
      else if (commonPartIndex == 1)
      {
        commonPath = string.Concat(commonPathParts[0], Path.DirectorySeparatorChar);
      }
      else
      {
        commonPath = string.Join(Path.DirectorySeparatorChar.ToString(), commonPathParts, 0, commonPartIndex);
      }
      return commonPath;
    }
    #endregion
  }
}