领导要求文件夹和文档排序的数字放在最后一位,但要按照数字顺序来。
比如:张三 1 、李四 2 、王五 3 、赵六 4,按照名称排序的话,系统自然是选择第一位字符,是数字则是按照数字,是汉字则按照拼音顺序,如何让 window 从后面的数字识别排序?
1
imicksoft 2021-08-20 11:43:51 +08:00 4
第一步:收购微软
第二步:修改 windows 源码 |
2
ipwx 2021-08-20 11:50:32 +08:00 2
首先,操作系统本来就不会对文件名排序。排序是文件浏览器的功能。
所以楼主需要做个文件浏览器。 |
3
youngce 2021-08-20 11:53:53 +08:00 1
建议让用户改名字,生成顺序 id 后,反馈给用户,用户去相关单位修改自己名字为 id+原名。
最后效果为 1 张三 1,2 李四 2 |
4
ksc010 2021-08-20 11:54:50 +08:00
开发一个 explorer 的插件?
|
6
EPr2hh6LADQWqRVH 2021-08-20 11:56:02 +08:00
改阿语,rtl
|
7
MakeItGreat 2021-08-20 11:56:06 +08:00 via Android
唯一可行的办法是按照时间排序,然后修改时间?
|
8
Suigintou OP @MakeItGreat 我唯一想到的也就这,但批量修改“修改时间”太折磨了吧,如果有简单的批量修改时间还能考虑下。
|
10
xxxxxiong 2021-08-20 12:06:16 +08:00 via Android
添加备注,然后按照备注排序
|
11
queuey 2021-08-20 12:21:44 +08:00
向上管理领导
|
12
Microi 2021-08-20 12:52:24 +08:00
领导是憨憨,名字加数字不符合惯用语法,易引起歧义。
|
13
bk201 2021-08-20 13:06:27 +08:00
前面插入不可见字符,按照 ascil 码排序
|
14
z740713651 2021-08-20 13:39:23 +08:00 1
醒醒 可能是让你走人
|
15
imicksoft 2021-08-20 15:21:04 +08:00 1
自已写管理器可行吧
送你一个 aardio 代码 io.open(); import fsys; var tab = {} fsys.enum("E:\新建文件夹", "*.*", function(dir,filename,fullpath,findData){ table.push(tab,{name=io.splitpath(fullpath).name;path=fullpath}) } ,false/*如果此参数为 false 则忽略子目录*/ ); table.sort(tab,function(a){ var n1 = tonumber(string.match(a.name,"\d+")):0; var n2 = tonumber(string.match(owner.name,"\d+")):0; return n1>n2; }) for(i=1;#tab;1){ io.print(tab[i].name) sleep(1001) string.save(tab[i].path,"") } execute("pause") |
16
imicksoft 2021-08-20 15:23:03 +08:00
不知道 aardio 为什么改文件修改时间的方式,我没有试验成功,所以直接改成保存文件的,每个文件时间间隔 1001 毫秒,运行此代码后按修改时间排序就行
|
17
NjcyNzMzNDQ3 2021-08-20 15:27:20 +08:00
windows 按创建文件的时间排序吧,这样生成文件应该好做些
|
18
Davic1 2021-08-20 16:35:08 +08:00
cat name.list |awk '{print $2,$1}'| sort|awk '{print $2,$1}'>name.list
|
19
Suigintou OP @imicksoft 多谢,我姑且用这种方法解决了,不过我觉得这尼玛不是长久之计,遇到需要修改文件的情况太麻烦了。
|
20
JKeita 2021-08-20 18:00:02 +08:00 1
这种煞笔需求直接拒了呗,不要领导说什么就做什么,都是惯得。
|
21
JinTianYi456 2021-08-20 20:21:55 +08:00
@imicksoft #15 想问下 aardio/易语言 这种,早期是不是有黑历史啥的,比如"借鉴"之类的 :D (随便问问
|
22
imicksoft 2021-08-20 20:41:37 +08:00
@JinTianYi456
好用就用喽,其他不 care |
23
levelworm 2021-08-20 23:19:50 +08:00 via Android
楼上说得好,垃圾需求别接受
|
25
pengtdyd 2021-08-21 14:17:44 +08:00
直接不做,垃圾需求
|
26
g00001 2021-08-22 12:00:02 +08:00
@JinTianYi456
非常支持和赞赏你的严谨态度, 对待国产语言我们就是要发扬严于律己、宽以待人的精神认真地扒黑历史。 aardio 十几年一直是免费,十几年没有看到过一个字的商业广告,是一个纯公益性的「个人项目」。对于 aardio 这样拥有十几年的历史的一个国产编程语言,以国人的尿性,有黑历史应该早就被扒一万遍死无全尸了吧? aardio 的核心代码实际也是开源的,使用了哪些开源的模块在文档里都有清楚的说明,这算黑历史不?! aardio 提供的所有标准库、扩展库全是开源的,还有很多公共域许可证的开源项目,大量的开源代码估计不太适合隐藏黑历史?! 例如 aardio 宣传的可以嵌入或混合 C 语言、C++、VB 、C#、Java 、Python 、Javascript 、Node.Js 、Flash ActionScript 、PHP 、VBScript 、NewLISP 、AutoLISP 、Delphi 、FreeBASIC 、Ruby 、Rust 、Julia 、Nim 、Go 语言、批处理 ......这一堆第三方语言,实现这些功能的扩展库全是开源的,要不你去看看都都借鉴了谁?! 或者 aardio 宣传的 可以嵌入非常多的浏览器控件,例如系统自带的 WebBrowser 、WebView 控件、 以及 WebView2 、WebKit 、Electron 、CEF3 、HTMLayout 、Sciter...... 甚至可以直接调用系统安装的 Chrome 、Chromium Edge 等浏览器写软件界面。而且在网页中调用本地接口、以及 aardio 与浏览器的交互极其方便,例如直接调用 Javascript 函数,并且在 Javascript 中直接回调 aardio 函数,不需要任何复杂的封装和中间件,你甚至可以在 Javascript 中直接调用 WINAPI 函数,实现这些功能的扩展库也全是开源的,要不你也去看看都借鉴了谁?! 回到楼主的技术问题, 至少用 aardio 实现一个简单的资源管理器要不了几句代码: 这是 aardio 自带范例里的代码, 关键代码是 win.ui.explorer 这个库 —— 也是开源的( 有没有借鉴别人的黑历史就不清楚了,写代码要做到完全不借鉴别人?吓得我都不敢写代码了)。至于要实现自定义的排序,加几句排序代码就可以,上面 imicksoft 已经写了。 单纯说实现这个功能,并没有什么成本。 至于领导的要求合不合理,就不掺和了。 |