2011-04-26 56 views
0

所以我們有一個像somepath/**這樣的父母,所以如果有人發給我們somepath/myfolder/file我們會收到true,如果我們會收到someotherpath/我們會得到false。那麼如何找出一條路徑遇到某個父母?如何找出路徑是否遇到某個父母?

+0

什麼是「parten」?你的意思是「父母」? – kiw 2011-04-26 22:55:50

+0

我相信「parten」是德語中的一個詞,谷歌稱它也用於西班牙語,但不是英語 - 你能澄清你的意思嗎?不知道你的意思是什麼,你的問題很難解釋(最好)。 – 2011-04-26 22:57:29

+0

@Jerry:作爲一個德國本地人,我可以說它不是;)一個關於「parten道路」的快速谷歌建議「父路徑」,這誘使我認爲他可能意味着「父母」。可能會有所幫助...... – kiw 2011-04-26 23:00:58

回答

1

您需要對兩條路徑進行歸一化,然後執行simple substring comparison以查看有問題的路徑是否以標準化的參考路徑開始。

正常化包括將當前工作目錄添加到相對路徑,如果您的文件系統不區分大小寫,可能會解析符號鏈接,甚至可能測試硬鏈接,則可能會標準化。如果你想讓文件本身成爲一個符號鏈接,你必須在歸一化之前提取路徑部分。

我已經使用realpath()函數在linux中完成了這項工作,即使參考路徑包含符號鏈接,它也可以很好地工作。不過,不知道如何通過提升來實現。

+1

因爲問題包含boost_filesystem標記,所以我建議使用'system_complete()'方法進行標準化 – davka 2011-04-27 05:29:37