gpt4 book ai didi

c# - 使用 .Net 验证路径相等性

转载 作者:IT王子 更新时间:2023-10-29 04:01:23 26 4
gpt4 key购买 nike

比较 .Net 中的两条路径以确定它们是否指向同一文件或目录的最佳方法是什么?

  1. 如何验证它们是否相同:

    c:\Some Dir\SOME FILE.XXX
    C:\\\SOME DIR\some file.xxx
  2. 更好的是:有没有办法验证这些路径是否指向某个网络驱动器上的同一个文件:

    h:\Some File.xxx
    \\Some Host\Some Share\Some File.xxx

更新:

Kent Boogaart 正确回答了我的第一个问题;但我仍然很好奇我的第二个问题是否有解决方案,即比较网络驱动器上的文件和目录的路径。

更新 2(我的两个问题的综合答案):

问题 1:本地和/或网络文件和目录

c:\Some Dir\SOME FILE.XXX
C:\\\SOME DIR\some file.xxx

答案:使用 System.IO.Path.GetFullPath 作为示例:

var path1 = Path.GetFullPath(@"c:\Some Dir\SOME FILE.XXX");
var path2 = Path.GetFullPath(@"C:\\\SOME DIR\subdir\..\some file.xxx");

// outputs true
Console.WriteLine("{0} == {1} ? {2}", path1, path2, string.Equals(path1, path2, StringComparison.OrdinalIgnoreCase));

问题 2:本地和/或网络文件和目录

答案:使用上发布的 GetPath 方法 http://briancaos.wordpress.com/2009/03/05/get-local-path-from-unc-path/

最佳答案

var path1 = Path.GetFullPath(@"c:\Some Dir\SOME FILE.XXX");
var path2 = Path.GetFullPath(@"C:\\\SOME DIR\subdir\..\some file.xxx");

// outputs true
Console.WriteLine("{0} == {1} ? {2}", path1, path2, string.Equals(path1, path2, StringComparison.OrdinalIgnoreCase));

忽略大小写只是在 Windows 上的一个好主意。您可以以类似的方式使用 FileInfo.FullName,但 Path 将适用于文件和目录。

不确定你的第二个例子。

关于c# - 使用 .Net 验证路径相等性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7344978/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com