检查相对路径是否为目录、向导或文件

本文关键字:向导 文件 相对 路径 是否 检查 | 更新日期: 2023-09-27 18:16:32

给定一个路径(可能是相对的),我如何能够检查该路径是目录、向导还是文件?它们可能不存在这让我很难找到解决办法。

我以前的解决方案是检查路径是否像这样的扩展:

    public bool IsDirectory(string path)
    {
        var extension = Path.GetExtension(path);
        return string.IsNullOrEmpty(extension);
    }

但是我发现这个路径通常也是一个指向guid的路径,所以上面的内容是不正确的。

有没有更好的方法,我可以写一个函数来检查所有这些情况?

检查相对路径是否为目录、向导或文件

这将首先检查它是一个文件还是一个路径,如果不是,我们将尝试解析它作为一个向导。

if(File.Exists(path))
{
    FileAttributes attr = File.GetAttributes(path);
    if (attr.HasFlag(FileAttributes.Directory))
        MessageBox.Show("Its a directory");
    else
        MessageBox.Show("Its a file");
}
else
{
    Guid guid;
    if (Guid.TryParse(path, out guid))
        MessageBox.Show("Its a Guid");
}