Feedback

Path.Combine mit unendlich vielen Segmenten

private static String GetPath(params String[] pathSegments)
{
    if ((pathSegments != null) && (pathSegments.Length > 0))
    {
        var path = Environment.ExpandEnvironmentVariables(pathSegments[0]);

        for (var i = 1; i < pathSegments.Length; i++)
        {
            var expanded = Environment.ExpandEnvironmentVariables(pathSegments[i]);

            path = Path.Combine(path, expanded);
        }

        return (path);
    }

    return (null);
}

private static void ShowPath(params String[] pathSegments)
{
    var path = GetPath(pathSegments);

    if (String.IsNullOrEmpty(path) == false)
    {
        Console.WriteLine(path);
        Console.WriteLine(Directory.Exists(path));
        var di = new DirectoryInfo(path);
        Console.WriteLine(di.FullName);
        Console.WriteLine(Directory.Exists(di.FullName));
        
        path = GetPath(path, "csc.exe");
        Console.WriteLine(path);
        Console.WriteLine(File.Exists(path));
        var fi = new FileInfo(path);
        Console.WriteLine(fi.FullName);
        Console.WriteLine(File.Exists(fi.FullName));
    }
    Console.WriteLine();
}

static void Main()
{
    ShowPath();
    ShowPath(null);
    ShowPath(@"C:");

3 Kommentare

  1. Der Aufruf von Environment.ExpandEnvironmentVariables ist nach meinen Feststellungen NICHT unnötig. Path.Combine macht das bei mir unter FW 4.5.1 leider NICHT selbständig.