V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Suigintou
V2EX  ›  问与答

遇到一个奇怪要求

  •  
  •   Suigintou · 2021-08-20 11:37:39 +08:00 via iPhone · 3934 次点击
    这是一个创建于 1187 天前的主题,其中的信息可能已经有所发展或是发生改变。

    领导要求文件夹和文档排序的数字放在最后一位,但要按照数字顺序来。

    比如:张三 1 、李四 2 、王五 3 、赵六 4,按照名称排序的话,系统自然是选择第一位字符,是数字则是按照数字,是汉字则按照拼音顺序,如何让 window 从后面的数字识别排序?

    27 条回复    2021-08-30 05:44:04 +08:00
    imicksoft
        1
    imicksoft  
       2021-08-20 11:43:51 +08:00   ❤️ 4
    第一步:收购微软
    第二步:修改 windows 源码
    ipwx
        2
    ipwx  
       2021-08-20 11:50:32 +08:00   ❤️ 2
    首先,操作系统本来就不会对文件名排序。排序是文件浏览器的功能。

    所以楼主需要做个文件浏览器。
    youngce
        3
    youngce  
       2021-08-20 11:53:53 +08:00   ❤️ 1
    建议让用户改名字,生成顺序 id 后,反馈给用户,用户去相关单位修改自己名字为 id+原名。

    最后效果为 1 张三 1,2 李四 2
    ksc010
        4
    ksc010  
       2021-08-20 11:54:50 +08:00
    开发一个 explorer 的插件?
    Suigintou
        5
    Suigintou  
    OP
       2021-08-20 11:54:59 +08:00 via iPhone
    @youngce 过于生艹。
    EPr2hh6LADQWqRVH
        6
    EPr2hh6LADQWqRVH  
       2021-08-20 11:56:02 +08:00
    改阿语,rtl
    MakeItGreat
        7
    MakeItGreat  
       2021-08-20 11:56:06 +08:00 via Android
    唯一可行的办法是按照时间排序,然后修改时间?
    Suigintou
        8
    Suigintou  
    OP
       2021-08-20 11:58:38 +08:00 via iPhone
    @MakeItGreat 我唯一想到的也就这,但批量修改“修改时间”太折磨了吧,如果有简单的批量修改时间还能考虑下。
    Suigintou
        9
    Suigintou  
    OP
       2021-08-20 11:59:52 +08:00 via iPhone
    @avastms 阿拉伯语?改成阿拉伯语有奇效?不过总不能把别人电脑也改成阿拉伯语吧😂
    xxxxxiong
        10
    xxxxxiong  
       2021-08-20 12:06:16 +08:00 via Android
    添加备注,然后按照备注排序
    queuey
        11
    queuey  
       2021-08-20 12:21:44 +08:00
    向上管理领导
    Microi
        12
    Microi  
       2021-08-20 12:52:24 +08:00
    领导是憨憨,名字加数字不符合惯用语法,易引起歧义。
    bk201
        13
    bk201  
       2021-08-20 13:06:27 +08:00
    前面插入不可见字符,按照 ascil 码排序
    z740713651
        14
    z740713651  
       2021-08-20 13:39:23 +08:00   ❤️ 1
    醒醒 可能是让你走人
    imicksoft
        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")
    imicksoft
        16
    imicksoft  
       2021-08-20 15:23:03 +08:00
    不知道 aardio 为什么改文件修改时间的方式,我没有试验成功,所以直接改成保存文件的,每个文件时间间隔 1001 毫秒,运行此代码后按修改时间排序就行
    NjcyNzMzNDQ3
        17
    NjcyNzMzNDQ3  
       2021-08-20 15:27:20 +08:00
    windows 按创建文件的时间排序吧,这样生成文件应该好做些
    Davic1
        18
    Davic1  
       2021-08-20 16:35:08 +08:00
    cat name.list |awk '{print $2,$1}'| sort|awk '{print $2,$1}'>name.list
    Suigintou
        19
    Suigintou  
    OP
       2021-08-20 16:41:25 +08:00 via iPhone
    @imicksoft 多谢,我姑且用这种方法解决了,不过我觉得这尼玛不是长久之计,遇到需要修改文件的情况太麻烦了。
    JKeita
        20
    JKeita  
       2021-08-20 18:00:02 +08:00   ❤️ 1
    这种煞笔需求直接拒了呗,不要领导说什么就做什么,都是惯得。
    JinTianYi456
        21
    JinTianYi456  
       2021-08-20 20:21:55 +08:00
    @imicksoft #15 想问下 aardio/易语言 这种,早期是不是有黑历史啥的,比如"借鉴"之类的 :D (随便问问
    imicksoft
        22
    imicksoft  
       2021-08-20 20:41:37 +08:00
    @JinTianYi456
    好用就用喽,其他不 care
    levelworm
        23
    levelworm  
       2021-08-20 23:19:50 +08:00 via Android
    楼上说得好,垃圾需求别接受
    Bzing
        24
    Bzing  
       2021-08-21 10:16:42 +08:00 via iPhone
    @imicksoft 你这成本太高,让老板自己来就行。
    pengtdyd
        25
    pengtdyd  
       2021-08-21 14:17:44 +08:00
    直接不做,垃圾需求
    g00001
        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 已经写了。

    单纯说实现这个功能,并没有什么成本。
    至于领导的要求合不合理,就不掺和了。
    ysc3839
        27
    ysc3839  
       2021-08-30 05:44:04 +08:00 via Android
    @g00001 aardio 的核心是开源的吗?请问能在哪访问到源代码?
    印象中 aardio 核心是闭源的,只是各个功能模块有提供源代码。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3778 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 10:40 · PVG 18:40 · LAX 02:40 · JFK 05:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.