亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何避免System.IO.PathTooLongException?

如何避免System.IO.PathTooLongException?

慕斯王 2019-12-03 11:08:53
我們不斷遇到這個問題...例:如果我有一個文件要復制到另一個目錄或UNC共享中,并且路徑長度超過248(如果我沒記錯的話),則拋出PathTooLongException。有沒有解決此問題的方法?PS:是否有任何注冊表設置將此路徑設置為更長的字符集?
查看完整描述

3 回答

?
烙印99

TA貢獻1829條經驗 獲得超13個贊

BCL團隊對此進行了深入討論,請參閱博客條目。

本質上,沒有辦法在.Net代碼中執行此操作并堅持使用BCL。太多的函數依賴于能夠規范化路徑名(這立即觸發期望遵循MAX_PATH的函數的使用)。

您可以包裝所有支持“ \\?\”語法的win32函數,使用這些函數,您可以實現一套可識別長路徑的功能,但這會很麻煩。

由于大量工具(包括explorer [1])無法處理長路徑名,因此不建議沿這條路線走,除非您對與結果文件系統的所有交互都通過您的庫感到滿意(或感到滿意的工具數量有限)可以像robocopy一樣處理它)

為了滿足您的特定需求,我將調查直接使用robocopy是否足以執行此任務。

[1] Vista可以通過在后臺進行一些重命名來緩解該問題,但這充其量是脆弱的。


查看完整回答
反對 回復 2019-12-03
  • 3 回答
  • 0 關注
  • 938 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號