// Copyright (c) .NET Foundation and contributors. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. using System; using System.IO; namespace Microsoft.DotNet.ProjectModel { public static class ProjectPathHelper { public static string NormalizeProjectDirectoryPath(string path) { string fullPath = Path.GetFullPath(path); if (IsProjectFilePath(fullPath)) { return Path.GetDirectoryName(fullPath); } else if (IsDirectoryContainingProjectFile(fullPath)) { return fullPath; } return null; } public static string NormalizeProjectFilePath(string path) { if (!path.EndsWith(Project.FileName)) { path = Path.Combine(path, Project.FileName); } return Path.GetFullPath(path); } private static bool IsProjectFilePath(string path) { return File.Exists(path) && string.Equals(Path.GetFileName(path), Project.FileName, StringComparison.OrdinalIgnoreCase); } private static bool IsDirectoryContainingProjectFile(string path) { return Directory.Exists(path) && File.Exists(Path.Combine(path, Project.FileName)); } } }