我正在尝试用 C# 编写一个静态成员函数,或者在 .NET Framework 中找到一个将文件路径重新设置为文件系统指定的文件路径的函数。
例子:
string filepath = @"C:\temp.txt";
filepath = FileUtility.RecaseFilepath(filepath);
// filepath = C:\Temp.TXT
// Where the real fully qualified filepath in the NTFS volume is C:\Temp.TXT
我已经尝试了下面的以下代码及其许多变体,但它仍然无法正常工作。我知道 Windows 通常不区分大小写,但我需要将这些文件路径传递给 ClearCase,它考虑文件路径大小写,因为它是 Unix 和 Windows 应用程序。
public static string GetProperFilePathCapitalization(string filepath)
{
string result = "";
try
{
result = Path.GetFullPath(filepath);
DirectoryInfo dir = new DirectoryInfo(Path.GetDirectoryName(result));
FileInfo[] fi = dir.GetFiles(Path.GetFileName(result));
if (fi.Length > 0)
{
result = fi[0].FullName;
}
}
catch (Exception)
{
result = filepath;
}
return result;
}