0
假設您有例如ZipArchive
。使用這個類,可以處理未連接到真實文件系統的文件系統。規範化虛擬文件系統的路徑表達式
說出歸檔具有以下結構:
.
├── Foo
│ └── File1
└── Bar
└── File2
現在,人們可以閱讀File1
。如果File1
包含對File2
的相對引用,則它寫爲../Bar/File2
。
的問題是一個如何可以與該路徑../Bar/File2
結合的File1
(Foo/
)的目錄,使得結果是Bar/File2
(該ZipArchive
不能處理相對與絕對路徑的組合)。
與(dir
和rel
)試圖解決方案:
Path.Combine
(dir,rel)
僅會將兩者之間的/
,因此項不能得到解決;new
DirectoryInfo
(Path.Combine(dir,rel)).FullName
生成包含當前目錄(cd
)的零件;和Path.GetFullPath
(Path.Combine(dir,rel)).FullName
做同樣的
怎麼能這樣正常化相對路徑?人們當然可以自己編寫一個標準化程序,但其可能性很高,算法將缺少規範的某些部分。