确定现有的路径目录

时间:2012-09-15 21:41:06

标签: c# .net directory fileinfo

假设我的路径字符串不完整:C:\dir\temp\f 我有以下文件系统:

C:\dir\
c:\dir\temp\
c:\dir\temp\foobar\
c:\dir\temp\foobar2\
c:\dir\temp\bar

我想确定目录的哪个部分是最匹配的。在此示例中,它将是c:\dir\temp\foobar\,因为它以路径字符串开头(并且foobar匹配优于foobar2)。 我怎样才能有效地获得可用路径?我是否必须按/拆分不完整的路径字符串,并测试文件夹是否可用或是否有更好的方法?

1 个答案:

答案 0 :(得分:3)

基本上,你想要做的就像dir C:\dir\temp\f*。在.Net中,您可以使用Directory.GetDirectories()执行此操作,但它要求您将完整路径拆分为路径和模式。为此,您可以使用Path类中的方法。所以,你的代码看起来像:

Directory.GetDirectories(
    Path.GetDirectoryName(path), Path.GetFileName(path) + "*")

这将返回所有匹配目录的集合,因此您必须自己确定哪一个最匹配。