我的問題是,我無法使用 \ / : * 等特殊字元給出資料夾或檔案的名稱。 「 < > | 在基於 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