C#检查相对路径是否为目录、guid或文件

C#检查相对路径是否为目录、guid或文件,c#,directory,guid,file-extension,C#,Directory,Guid,File Extension,给定一个路径(可能是相对的),如何检查该路径是目录、guid还是文件。它们可能不存在,这使得我很难找到解决方案 我以前的解决方案是检查路径是否是这样的扩展: public bool IsDirectory(string path) { var extension = Path.GetExtension(path); return string.IsNullOrEmpty(extension); } 但是我发现这个路径通常也是指向guid

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

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

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

        return string.IsNullOrEmpty(extension);
    }
但是我发现这个路径通常也是指向guid的路径,所以上面的描述是不正确的


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

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

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

检查路径是否为目录、guid或文件
其中一项与另一项不同您是说有时您的文件名只是没有扩展名的guid吗?因为路径是指向文件或目录的,并且不清楚guid与路径之间的关系。此链接可能会帮助您:此guid问题令人困惑,它将只是一个guid本身或一个以guid命名的文件夹/文件?在这种情况下,@Kymuweb linked将为您提供一个解决方案,尽管您需要确保您的路径是相对于当前工作目录的。
检查路径是否为目录、guid或文件
其中一项与另一项不同您是说有时您的文件名只是没有扩展名的guid吗?因为路径是指向文件或目录的,并且不清楚guid与路径之间的关系。此链接可能会帮助您:此guid问题令人困惑,它将只是一个guid本身或一个以guid命名的文件夹/文件?在这种情况下,@Kymuweb linked将为您提供一个解决方案,尽管您需要确保您的路径相对于当前工作目录。