2012-09-15 81 views
4
的現有目錄

假設我有一個不完整的路徑字符串: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更好)。 我怎樣纔能有效地獲得可用的路徑?我是否必須將不完整的路徑字符串拆分爲/並測試這些文件夾是否可用或者是否有更好的方法?

回答

3

基本上,你想要做的是類似dir C:\dir\temp\f*。在.Net中,您可以使用Directory.GetDirectories()執行此操作,但它需要將完整路徑分割爲路徑和模式。爲此,您可以使用Path類中的方法。所以,你的代碼可能看起來是這樣的:

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

這將返回所有匹配目錄的集合,所以你必須找出它們中的哪一個自己最匹配。