3 回答

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超13個(gè)贊
BCL團(tuán)隊(duì)對(duì)此進(jìn)行了深入討論,請(qǐng)參閱博客條目。
本質(zhì)上,沒(méi)有辦法在.Net代碼中執(zhí)行此操作并堅(jiān)持使用BCL。太多的函數(shù)依賴于能夠規(guī)范化路徑名(這立即觸發(fā)期望遵循MAX_PATH的函數(shù)的使用)。
您可以包裝所有支持“ \\?\”語(yǔ)法的win32函數(shù),使用這些函數(shù),您可以實(shí)現(xiàn)一套可識(shí)別長(zhǎng)路徑的功能,但這會(huì)很麻煩。
由于大量工具(包括explorer [1])無(wú)法處理長(zhǎng)路徑名,因此不建議沿這條路線走,除非您對(duì)與結(jié)果文件系統(tǒng)的所有交互都通過(guò)您的庫(kù)感到滿意(或感到滿意的工具數(shù)量有限)可以像robocopy一樣處理它)
為了滿足您的特定需求,我將調(diào)查直接使用robocopy是否足以執(zhí)行此任務(wù)。
[1] Vista可以通過(guò)在后臺(tái)進(jìn)行一些重命名來(lái)緩解該問(wèn)題,但這充其量是脆弱的。
- 3 回答
- 0 關(guān)注
- 935 瀏覽
添加回答
舉報(bào)