检查路径区分大小写
本文关键字:大小写 路径区 检查 | 更新日期: 2023-09-27 18:10:45
我试图将路径转换为规范形式,以便比较它们。我就快完成了,但是我被大小写卡住了:
如果路径不区分大小写(即在Windows上),我的最后一步应该是path = path. toupper()或ToLower()。在其他系统(如Linux、OSX)上,应该跳过最后一步。
是否有合适的方法来检测这个
您可能正在寻找System.Environment.OSVersion。这也将检测windows的版本。所以如果你想,你可以简单地检查版本是否为Windows,然后执行大小写,否则跳过它。
之类的System.OperatingSystem osInfo = System.Environment.OSVersion;
if(osInfo .Contains("Windows"))
{
//Do casing
}
else
{
//skip
}
如果你知道哪些操作系统是区分大小写的,你可以使用以下命令来检查
Environment.OSVersion.Platform
这是一个具有各种操作系统的枚举。然后,您可以使用它来检查是否需要对字符串进行规范化
您必须正确检测代码运行的操作系统。之后您可以根据操作系统规则决定正确的策略。乍一看,你的方法是正确的。要确定您正在运行的操作系统,请尝试以下代码片段
var OS = System.Environment.OSVersion;
var platform = OS.Platform;
var version = OS.Version; // or OS.VersionString
var servicePack = OS.ServicePack;
if(platform=="Unix")
{
...
}
可以让您确定兼容性。"Platform"的结果是根据System.Runtime.InteropServices库中的PlatformID枚举生成的。
// Summary:
// Identifies the operating system, or platform, supported by an assembly.
[Serializable]
[ComVisible(true)]
public enum PlatformID
{
// Summary:
// The operating system is Win32s. Win32s is a layer that runs on 16-bit versions
// of Windows to provide access to 32-bit applications.
Win32S = 0,
//
// Summary:
// The operating system is Windows 95 or Windows 98.
Win32Windows = 1,
//
// Summary:
// The operating system is Windows NT or later.
Win32NT = 2,
//
// Summary:
// The operating system is Windows CE.
WinCE = 3,
//
// Summary:
// The operating system is Unix.
Unix = 4,
//
// Summary:
// The development platform is Xbox 360.
Xbox = 5,
//
// Summary:
// The operating system is Macintosh.
MacOSX = 6,
}