0
A
回答
1
對於只是「簡單」的標準化解析使用.
和..
,使用GIO API的g_file_new_for_path()
函數只是創建兩個GFile
對象。然後使用g_file_equal()
比較這兩個文件。
請注意,這依賴於GIO在創建GFile
對象時對路徑進行簡單的標準化;它不會解析符號鏈接。文檔狀態:
使用
GFile
作爲標識符具有與使用在該路徑可能存在對同一文件多個別名相同的弱點。例如,硬鏈接或軟鏈接可能會導致兩個不同的GFile
引用同一個文件。別名的其他可能原因是:不區分大小寫的文件系統,FAT/NTFS上的短名和長名,或Linux中的綁定掛載。如果您想檢查兩個GFile
是否指向同一個文件,您可以查詢G_FILE_ATTRIBUTE_ID_FILE
屬性。請注意,GFile
會對傳入的路徑名進行一些簡單的規範化處理,以便在創建時使用的路徑字符串(重複的斜線,路徑末尾的斜槓,「。」或「..」路徑段等)不會產生不同的差別GFile
s。
所以,你可以做一個兩步走的方法:
- 請與
g_file_equal()
。如果它說true
,你就完成了。 - 否則查詢
G_FILE_ATTRIBUTE_ID_FILE
屬性並進行比較。
相關問題
- 1. 與Z3的等價性檢查
- 2. 在Android中的Files.newDirectoryStream(路徑)等價於
- 3. Scala:路徑依賴類型的等價
- 4. C使用strcmp來檢查URL路徑
- 5. 檢查路徑在其路徑
- 6. 使用與linq相同的等價性屬性檢索值
- 7. 「屬性‘路徑’沒有價值」
- 8. 檢查路徑是絕對路徑還是相對路徑
- 9. 檢查文件夾路徑
- 10. CLIPS:檢查目錄路徑
- 11. 檢查websphere類路徑
- 12. 檢查最佳路徑
- 13. 檢查路徑是ObjC
- 14. 如何檢查路徑是應用程序的緩存路徑?
- 15. Neo4j - 使用Gremlin查找最短路徑及其遍歷代價
- 16. 檢查NOT XOR的布爾狀態與檢查等價性是否相同?
- 17. Chrome檢查員不顯示網絡請求路徑等
- 18. 用Apache htaccess檢查虛擬路徑
- 19. System.IO.Path或等效使用Unix路徑
- 20. 如何檢查guvnor Web決策表中的等價性?
- 21. 檢查字母表中變量的等價性。
- 22. 檢查兩個字符串數組的等價性
- 23. 如何使用Extendscript檢查路徑是否適合其他路徑?
- 24. 檢查選擇框,當值=等價值
- 25. 檢查等價,別提爲了
- 26. Python的等價性?
- 27. 使用用戶的路徑輸入檢查HDD分區空間
- 28. 等價路由的routing.yml
- 29. 檢查{{路徑()}}是當前{{路徑()}}在Symfony2中
- 30. 的Python:如何檢查是否路徑的子路徑
你是指什麼樣的等同性,在這裏?具體而言,應如何處理符號鏈接? – unwind
例如/ home/user/file /home/user/dir/../file和file是相同的(如果$ PWD =/home/user) – shved