C#检查相对路径是目录还是guid或文件

时间:2016-11-04 14:08:05

标签: c# directory guid file-extension

给定一个路径(可能是相对路径),我如何检查路径是目录,guid还是文件。它们可能不存在,这使我难以找到解决方案。

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

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

        return string.IsNullOrEmpty(extension);
    }

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

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

1 个答案:

答案 0 :(得分:3)

这将首先检查它是文件还是路径,如果不是,我们会尝试解析它是否为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");
}