// Copyright 1998-2019 Epic Games, Inc. All Rights Reserved. using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Tools.DotNETCommon { /// /// Utility functions for manipulating files /// public static class FileUtils { /// /// Finds the on-disk case of a a file /// /// FileInfo instance describing the file /// New FileInfo instance that represents the file with the correct case public static FileInfo FindCorrectCase(FileInfo Info) { DirectoryInfo ParentInfo = DirectoryUtils.FindCorrectCase(Info.Directory); foreach (FileInfo ChildInfo in ParentInfo.EnumerateFiles()) { if (String.Equals(ChildInfo.Name, Info.Name, FileReference.Comparison)) { return ChildInfo; } } return new FileInfo(Path.Combine(ParentInfo.FullName, Info.Name)); } } }