Files
UnrealEngineUWP/Engine/Source/Programs/DotNETCommon/DotNETUtilities/FileUtils.cs
ben marsh dc86c31790 UBT: Add utility methods for correcting paths to match their case on disk, and fix issues with inconsistent paths when cross-compiling for Linux.
#rb none
#jira UE-72267
#jira UE-72904

#ROBOMERGE-OWNER: ryan.vance
#ROBOMERGE-AUTHOR: ben.marsh
#ROBOMERGE-SOURCE: CL 6441346 in //UE4/Release-4.22/... via CL 6441352
#ROBOMERGE-BOT: DEVVR (Main -> Dev-VR)

[CL 6504717 by ben marsh in Dev-VR branch]
2019-05-15 15:05:00 -04:00

34 lines
916 B
C#

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Tools.DotNETCommon
{
/// <summary>
/// Utility functions for manipulating files
/// </summary>
public static class FileUtils
{
/// <summary>
/// Finds the on-disk case of a a file
/// </summary>
/// <param name="Info">FileInfo instance describing the file</param>
/// <returns>New FileInfo instance that represents the file with the correct case</returns>
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));
}
}
}