是什麼導致檔案路徑前出現無效字元 (\\?\)?

是什麼導致檔案路徑前出現無效字元 (\\?\)?

\\?\是什麼導致僅在某些資料夾中的檔案路徑前出現無效字元 ( )?

無效的檔案路徑:

\\?\D:\computerfiles...

路徑無效的檔案無法在原始資料夾中開啟。

這些\\?\字元僅在某些檔案位於原始位置時出現,但當檔案複製到其他資料夾時不會出現。

只有當我找到無法開啟的檔案(例如圖像)並且檢查屬性以檢測無效前綴時,我才會看到此內容

另外,如何找到所有具有無效前綴的路徑?

答案1

那不是非法字元。這是 Windows 關閉路徑調整的訊號。它允許您擁有比 更長的路徑MAX_PATH

按照命名檔案、路徑和命名空間:

Windows API 中的檔案 I/O 函數會將“/”轉換為“\”,作為將名稱轉換為 NT 樣式名稱的一部分,但使用“\\?\”前綴時除外,如以下各節所述。

Windows API 具有許多函數,這些函數也具有 Unicode 版本,以允許擴展長度路徑,最大路徑總長度為 32,767 個字元。這種類型的路徑由用反斜線分隔的元件組成,每個元件最多為 GetVolumeInformation 函數的 lpMaximumComponentLength 參數傳回的值(該值通常為 255 個字元)。若要指定擴展長度路徑,請使用“\\?\”前綴。例如,「\\?\D:\非常長的路徑」。

Windows 資源管理器似乎在某個時刻啟用了存取長路徑的功能。在此過程中,您可以在檔案/資料夾屬性頁的「位置」欄位中看到以下內容:

  1. 「常規」路徑(如果夠短)
  2. 8.3 名稱路徑(類似於C:\WHATEV~1\...),如果該檔案系統上存在 8.3 名稱且足夠短
  3. 否則延長路徑

tl;dr:你的路太長了。

相關內容