代码之家  ›  专栏  ›  技术社区  ›  Craig Gidney Mihai

有没有一种方法可以确定文件路径是否嵌套在.Net的目录路径中

  •  2
  • Craig Gidney Mihai  · 技术社区  · 14 年前

    乍一看,这似乎很简单。只需检查文件路径是否以目录路径开始。但是,这种简单的检查忽略了几个问题:

    • 路径可以是相对的,也可以是绝对的
    • 路径可以使用备用目录分隔符
    • 路径可能使用不一致的大小写,这取决于操作系统
    • 不同的路径可能指向相同的位置

    框架中是否有现有的方法,或者我是否必须编写自己的方法?

    2 回复  |  直到 14 年前
        1
  •  2
  •   Wade Tandy    14 年前

    据我所知,没有内置的.NET方法来实现这一点,但是下面的函数应该使用FileInfo和DirectoryInfo类来实现这一点:

    public static bool FolderContainsFile(String folder, String file)
    {
        //Create FileInfo and DirectoryInfo objects
        FileInfo fileInfo = new FileInfo(file);
        DirectoryInfo dirInfo = new DirectoryInfo(folder);
    
        DirectoryInfo currentDirectory = fileInfo.Directory;
        if (dirInfo.Equals(currentDirectory))
            return true;
    
        while (currentDirectory.Parent != null)
        {
            currentDirectory = currentDirectory.Parent;
    
            if(currentDirectory.Equals(dirInfo)
                return true;
        }
    
        return false;
    
    }
    
        2
  •  1
  •   Hans Olsson    14 年前

    Path.GetFullPath .

    引用: 返回指定路径字符串的绝对路径。

    推荐文章