| File: IFileSystemInfoExtensions.cs | Web Access |
| Project: src\sdk\src\TemplateEngine\Microsoft.TemplateEngine.Utils\Microsoft.TemplateEngine.Utils.csproj (Microsoft.TemplateEngine.Utils) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using Microsoft.TemplateEngine.Abstractions.Mount; namespace Microsoft.TemplateEngine.Utils { public static class IFileSystemInfoExtensions { /// <summary> /// Returns full path to <paramref name="fileSystemInfo"/> including mount point URI in a format /// that is suitable for displaying in the CLI or printing to logs. /// This method wraps the path with quotes if it contains spaces. /// </summary> /// <param name="fileSystemInfo">the file system info to get full path for.</param> /// <returns> /// Full path to <paramref name="fileSystemInfo"/> including mount point URI. /// If mount point is not a directory, the path is returned as 'mount point URI(path inside mount point)'. /// </returns> public static string GetDisplayPath(this IFileSystemInfo fileSystemInfo) { string result; if (fileSystemInfo.MountPoint.EnvironmentSettings.Host.FileSystem.DirectoryExists(fileSystemInfo.MountPoint.MountPointUri)) { //mount point is a directory, combine paths result = Path.Combine(fileSystemInfo.MountPoint.MountPointUri, fileSystemInfo.FullPath.Trim('/', '\\')); } else { //assuming file or anything else result = $"{fileSystemInfo.MountPoint.MountPointUri}({fileSystemInfo.FullPath})"; } if (result.Contains(" ")) { result = '"' + result + '"'; } return result; } } }