Буква диска, похоже, все еще следует за предоставленным нами корпусом. Кроме того, это должно быть проверено на пути UNC.
аюсь написать статическую функцию-член в 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;
}