如何使用 \ / : * 等特殊字元建立資料夾名稱或檔案名稱? “ < > |

如何使用 \ / : * 等特殊字元建立資料夾名稱或檔案名稱? “ < > |

我的問題是,我無法使用 \ / : * 等特殊字元給出資料夾或檔案的名稱。 「 < > | 在基於 Windows 的作業系統中 這對我來說非常重要,給出包含此類字元的檔案/資料夾的名稱。

我已經搜尋並參考了很多網站,針對這個問題,但都沒有希望。我還閱讀了微軟支援頁面,他們建議使用其他字元。這是它的鏈接,https://support.microsoft.com/en-us/kb/177506

我已經嘗試使用 Alt 按鈕 + 此類特殊字元的 ASCII 代碼,通過小鍵盤鍵,僅示例重命名文件/資料夾並按 Alt+60(對於 < 字元)仍然給出訊息,文件名不能包含以下任何內容人物: \ / : * ? ” < > |

建議我合適的解決方案,以便我可以使用此類特殊字元給出文件/資料夾的名稱。

答案1

這對我來說非常重要,包含這些字元的文件/資料夾的命名。

這對你來說可能很重要,但你必須放棄它,尋找不同的方法來解決你的問題。

處理檔案名稱的 Windows 作業系統函數呼叫不允許使用這些字元。

它們是特別不允許的,因為它們還有其他用途:

  • \- 保留用作路徑分隔符號和逃脫特點
  • /- 保留用作路徑分隔符
  • :- 保留用作磁碟機名稱分隔符
  • *?- 保留用作通配符人物
  • "- 保留用於引用包含空格的名稱
  • <, >|- 保留用作命令重定向營運商

當然,您可以使用不同的作業系統建立名稱包含這些字元的檔案(只要該作業系統可以讀取/寫入 Windows 檔案系統)。

但是,您將無法使用任何 Windows 程式對這些檔案執行任何操作,並且它們不會理解檔案名稱並會產生錯誤。


命名檔案、路徑和命名空間

命名約定

以下基本規則使應用程式能夠建立和處理檔案和目錄的有效名稱,而不管檔案系統如何:

使用目前代碼頁中的任何字元作為名稱,包括 Unicode 字元和擴充字元集中的字元 (128–255),但下列字元除外:

  • 以下保留字元:

    < (less than)
    > (greater than)
    : (colon)
    " (double quote)
    / (forward slash)
    \ (backslash)
    | (vertical bar or pipe)
    ? (question mark)
    * (asterisk)
    
  • 整數值零,有時稱為 ASCII NUL 字元。
  • 整數表示形式在 1 到 31 範圍內的字符,允許使用這些字符的備用資料流除外。有關文件流的更多信息,請參閱文件流。
  • 目標檔案系統不允許的任何其他字元。

來源命名檔案、路徑和命名空間


但無論如何我真的很想這麼做。

安裝西格溫並使用touch.

我沒有測試所有的可能性,但進行了以下工作:

touch :
touch \|
touch \"
touch \>

輸出範例:

DavidPostill@Hal /f/test/impossible
$ ll
total 0
-rw-rw-rw-+ 1 DavidPostill None 0 Aug 10 21:03 '"'
-rw-rw-rw-+ 1 DavidPostill None 0 Aug 10 21:02 :
-rw-rw-rw-+ 1 DavidPostill None 0 Aug 10 21:02 '|'
-rw-rw-rw-+ 1 DavidPostill None 0 Aug 10 21:07 '>'

如您所見,它們在 Windows 中不可用:

F:\test\impossible>dir
 Volume in drive F is Expansion
 Volume Serial Number is 3656-BB63

 Directory of F:\test\impossible

10/08/2016  21:07    <DIR>          .
10/08/2016  21:07    <DIR>          ..
10/08/2016  21:03                 0 
10/08/2016  21:02                 0 
10/08/2016  21:07                 0 
10/08/2016  21:02                 0 
               4 File(s)              0 bytes
               2 Dir(s)  1,772,601,536,512 bytes free

在此輸入影像描述

答案2

建立您自己的字體集。將一些不使用的字元替換為保留字元的圖像。

答案3

在 Windows 中,您無法建立包含這些字元的檔案。沒有解決辦法,這些字元是Win32 API禁止的。

Win32 是 POSIX 命名空間的子集,不區分大小寫。它使用所有 Unicode 字符,除了: '"' '*' '/' ':' '<' '>' '?' '\' '|'注意名稱不能以點“.”或空格“”結尾。

--http://dubeyko.com/development/FileSystems/NTFS/ntfsdoc.pdf

相關內容