C#检查相对路径是否为目录、guid或文件
给定一个路径(可能是相对的),如何检查该路径是目录、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
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将为您提供一个解决方案,尽管您需要确保您的路径相对于当前工作目录。