windows中文件或者文件名是按照什麼原則排序的?命名時有什麼技巧?

比如我知道:
一般是文件夾優先於普通文件,特殊字元(標點、符號)&> 數字 &> 字母順序 &> 漢字拼音。
但是具體到每一項怎麼排的?如特殊字元的順序是怎麼排的等。

其次,在命名的時候有什麼技巧而言使得名稱看起來規整美觀顯眼?
謝謝。


感謝 @基寧 從百度知道上找到的材料,但或許是微軟更改了排序規則,該答案還是有一些錯漏之處,於是吾人決定手工測試一下。資歷相關:熟練掌握在windows系統圖形界面下進行新建文件(夾)、文件(夾)重命名等操作。

實驗名稱:手工測試 windows 10 英文版 中名稱由合法中英文鍵盤符號(不含/:*?"&<&>|)、數字、英文字母與漢字組成的文件(夾)按名稱排序(Sort by Name)升序排列時的排序規律

先撂圖

術語表:(不支持表格就算了,不支持製表符也忍了,連連續空格都不支持是怎麼個情況!)
A&前導字元 ........................."-(英文連字元,減號)—(中文破折號)
英文鍵盤符號 ...................!#$%(),.;@[]^_`{}~+=
中文鍵盤符號 ...................!¥…()【】、:;「」『』《》,。?
數字 ................................0123456789
英文字母 ..........................a-zA-Z

規則
00.文件夾&<文件,文件先依主名排序,主名相同依擴展名排序。文件夾名、文件主名、擴展名以下統稱為「名稱」,按下列步驟排序。
0.空串&<非空串
1.忽略名稱中的前導字元,將名稱視為以下子串的拼接,自左向右依次比較所有子串:純符號串、純數字串、純英文字母串、純漢字串
1.1.首先按子串的類型排序:符號&<數字&<英文字母&<漢字
1.2.類型相同的,按下列規則排序:
鍵盤符號:自左向右對位比較,英文鍵盤符號順序為!#$%(),.;@[]^_`{}~+=,中文全形符號一般跟隨在對應英文符號之後,混排順序為!!#$%(()),,、.。;;?@[]^_`{}~『』「」《》¥【】+=·…
數字:按數值大小由小到大排列,同等大小按前導零數目由多到少排列。(win 7可以在組策略中啟用「關閉Windows資源管理器中的數值排序」將此規則更改為按每個數字位依次比較排序,其它版本未確認)
英文字母:自左向右對位比較,按a-z的順序排列,不區分大小寫
漢字:自左向右對位比較,根據系統當前的語言識別碼(LCID,Windows Language Code Identifier)排序。LCID確定了系統語言格式和排序方法。比如簡體中文可用的排序有拼音、姓氏和筆畫數:日文可用的有XJIS和部首。這些設置可以在 「控制面板-區域-格式-排序」 中更改。沒有特殊排序方式的語言格式(比如英語)依Unicode編碼的code point排序。參考:Windows 資源管理器是如何排序文件... 與 [MS-LCID]: Glossary
多語言混排的非Unicode排序規則尚不清楚,因為答主就是不清楚。

2.忽略前導字元後完全相同的,按以下規則自左到右依次比較對應前導字元串:自右向左對位比較,順序為"&<-&<—

以上規則均可在測試圖中找到對應實例驗證。

更多非鍵盤直接輸入的Unicode符號未經測試,因為數量太多,而且可以看出Microsoft試圖在用一種更加有意義的順序而不是簡單的按位比較code point來排序這些符號,比如測試圖中的?被放在0和1之間……吐槽不能。

如何命名?
1.參照傳統紙質文件(夾)命名方法。把文件內容、時間、來源或其它必要信息寫清楚。這是最先要做的。
2.添加前後綴實現想要的排序效果。
比如 " 和 - 很適合用來在文件名前後標識同一文件的不同版本,比如 絕對最終版.pdf 和 -絕對最終版.pdf 和 絕對最終版".pdf 甚至 ----------------"絕"對"最"終"版""""""""""""".pdf 都會緊緊的挨在一起的。
答主用 ! 來提前和固定重要的項目,前綴 ! 可以對對象施加永久性「排列在前端」效果,這樣想覺得好魔法(其實 ! 本來就被廣泛用於標記重要項目)。


並不是按照ASCII碼排序的,剛才測試了一下- - 注意 文件名中不能包含 / : * ? " &< &> | 因此將這幾個符號排除測試範圍 英文字元及數字字母排列順序為: ! # $ % ( ) , . " - ; @ [ ] ^ _ ` { } ~ + = 0 1 2 … 9 A B C … Z 系統不區分大小寫字母 剛才測試了一下中文字元,日語假名,漢字,部分其他語種等 中文英文日文字元混編順序如下(半形) ! ! # $ % ( ( ) ) , , . " - — 。 : ; ; @ [ ] ^ _ ` { } ~ ~ 『 「 《 》 ¥ 『 』 【 】 + = × ÷ · … 0 1 2 9 A B C Z 吖 啊 八 壓 作 (漢字應該是按照拼音排序,如果是多音字,則取其中一種發音作為排序音) 經過測試,日文假名排在漢字之前,其排序規則如下 (無論平片假名按照五十音圖排列,不過濁音與半濁音排列在ya、wa、n等音前,且同一假名中片假名位於平假名前) 經過測試,絕大多數韓文字元排列在漢字之後,粗略測試只有子音?排在漢字之前 韓文字母、複合字母及單字均按照其第一個構成字母排序,第一個相同按照第二個,以此類推 排序方式是從子音 ? 到 ? 然後是母音 ? 到 ? (由於韓語只學了皮毛,因此我的判斷並不一定準確) 經過測試,希臘語字元排在英文字母之後,日語假名之前,且按照希臘語字母標準排序方式排列,並且不區分大小寫 經過測試阿拉伯語字元排列在日文假名之後,漢字及韓文之前 (由於沒學過阿拉伯語,因此無從判斷阿拉伯語字元排序方式) 由於時間關係,先是測試了這些字元排序方式 關於數學等專用符號,經過簡單測試混雜於英文字元及中文字元後半段,甚至有些混雜到數字以及英文字母中 以下是其中幾個專用符號插在中英文普通標點中的排序位置(因為數量實在龐大,無法全部測試,只能選擇了幾個) 【 】 + = ≠ ± × ÷ ∴ ∵ ≈ △ ◆ ◇ ○ ◎ ● ↑ → ↓ ← § · … 〓 ☆ 0 1 2 3 9 ∞ A B C M N Na Nz № O P Z
參考:http://zhidao.baidu.com/question/111363523.html


特殊字元的排序不太清楚是怎麼排的,不過應該是根據二進位碼的順序來排的,或者說總體的排序規則都是遵循二進位碼

一般命名的時候在前面加上特殊字元或者字母就可以很容易地讓排序更有條理性了


同問啊,文件按照文件名排序的原理是什麼?


推薦閱讀:

為什麼把軟體下載安裝到d盤但c盤的空間越來越少,57G的c盤夠用嗎?
你為什麼從海康威視離職?
DELL XPS的超高分屏怎麼在windows上解決字小的問題?
如何比較台式機、一體機、筆記本、上網本、超級本、平板的優缺點,以及未來的發展趨勢?
如何查找別人論文(計算機類文獻)中實驗的代碼?

TAG:MicrosoftWindows | 計算機 | 命名 | 月光博客 | 字元編碼 | 排序 | 文件名 |