当前位置:  开发笔记 > 开发工具 > 正文

Windows资源管理器排序方法

如何解决《Windows资源管理器排序方法》经验,为你挑选了2个好方法。

我正在寻找一种算法来排序字符串,类似于在Windows资源管理器中排序文件(和文件夹)的方式.似乎在排序时会考虑字符串中的数值,这会产生类似的结果

name 1, name 2, name 10

代替

name 1, name 10, name 2

通过常规字符串比较得到的.

我本人即将开始写这篇文章,但是想要检查一下是否有人这样做过,并愿意分享一些代码或见解.我接近这个的方法是在比较之前将前导零添加到名称中的数值.这会产生类似的结果

name 00001, name 00010, name 00002

当使用常规字符串排序进行排序时,会给出正确的结果.

有任何想法吗?



1> Michael Borg..:

它被称为"自然排序".杰夫前一段时间有一篇非常广泛的博客文章,它描述了您可能忽略的困难,并且链接到多个实现.



2> Stefan..:

Explorer使用API StrCmpLogicalW()进行这种排序(称为"自然排序顺序").

您不需要编写自己的比较函数,只需使用已存在的函数.

这里可以找到一个很好的解释.

推荐阅读
kikokikolove
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有