正如此處指定的那樣,可以在 Windows 上使用絕對路徑而沒有MAX_PATH長度限制。
但是我注意到以 開頭的路徑\\?\在某些舊版本的 Windows 中不起作用。
我需要檢測哪個版本(例如使用此處描述的功能之一)來幫助我的軟體決定使用\\?\路徑?
uj5u.com熱心網友回復:
如果您\\?\在 unicode 路徑中使用前綴 - 任何版本的 windows(甚至 win2000 和 xp)都始終支持長路徑。關于支持長路徑的問題 - 僅影響不以 開頭的其他路徑型別\\?\,例如c:\*
從最大路徑長度限制
Windows API 有許多函式,這些函式也有 Unicode 版本,以允許最大總路徑長度為 32,767 個字符的擴展長度路徑。... 要指定擴展長度的路徑,請使用
"\\?\"前綴。例如,"\\?\D:\very long path"。
通常在任何單獨的函式檔案中也直接說明了\\?\前綴(如果這個 api 支持 - 檔案 I/O 函式總是支持這個前綴,當 shell api - 從不)
例如從 GetFileAttributesW
要將此限制擴展到 32,767 個寬字符,請呼叫該函式的 Unicode 版本 (GetFileAttributesW),并將
"\\?\"其添加到路徑中。
一樣的CreateFileW等等..
要將此限制擴展到 32,767 個寬字符,請使用該函式的此 Unicode 版本并
"\\?\"在路徑前加上前綴。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/391487.html
