2016-08-19 172 views
-1

有一次,我想讓一個微軟的人說:「這看起來很奇怪,看起來你可能會丟失你的文件,我會爲此記錄一個錯誤。」Windows文件瀏覽器如何按名稱排序?

5什麼宇宙在4之前?

+1

這是因爲25在245之前。(作爲一個人,我可以發現這些文件名可能是十六進制的,應該可以在此基礎上進行排序。但是這可能有點多問一臺計算機。) –

回答

1

禮貌@ RaymondChen的Windows Confidential: The Evolution of Sorting

...當在Windows資源管理器中顯示的Windows 95排序文件名,這將令file139提前file20的。從計算機程序員的角度來看,這是完全合乎邏輯的。這對普通人來說也是完全違反直覺的 - 從而證明計算機程序員不是普通人。

在Windows XP中,Microsoft更新了Windows資源管理器的排序算法,使其更符合正常人的期望。它將文件名中的數字視爲數字,而不是字符序列。雖然這對大多數人來說改進了排序,但有些情況下這種改變會帶來一些驚喜。

經常出現的一個例子是包含十六進制值的文件名。在新的基於數字的排序下,Windows資源管理器假定一個名爲「1040A」的文件應該在「1040」之後略微排序,並且不會在名爲「103F2」的文件附近排序。如果出於某種原因,您習慣於查看文件夾完整的名稱爲十六進制值的文件時,可以設置策略「關閉Windows資源管理器中的數字排序」。此策略將排序改回到Windows XP之前版本的Windows中 - 即逐個字符 - 字符。

諷刺的是,這個被稱爲「直觀的文件排序」時被引入的功能早在Windows XP中。可以通過設置本地策略(如上面的突出顯示)或通過編輯註冊表來關閉它 - 請參閱How to Enable or Disable Numerical Sorting in Windows Explorer

+1

好吧。對於脫離主題感到抱歉。不知道有很多「正常」的人在那裏生成基於十六進制計數的文件名,但我猜Windows資源管理器是一般用途,你可以得到。 (當然,沒有人不是程序員會想出如何回答這個問題,但這是另一回事......) –

+0

我發佈(嘗試發佈)圖片的原因是爲了展示有問題的案例。我本來以爲一個「答案」就足以解釋爲什麼B607在BA2A之前,而C245是在C25A之後。 (是的,我知道有數字和單詞,而這些十六進制數字就是如此令人困惑。)當有問題的行爲看起來是隨機的時,很難想出一個解決方法。 –