windows文件资源管理器排序
发表于|更新于
|浏览量:
单独一个人可以灭亡的地方,两个人在一起可能得救。——巴尔扎克
今天做一个需求:按照windows文件资源管理器的排序规则进行文件排序
但我在研究过程中,发现了一丝不妙,这玩意儿的规则比我想的复杂
自己之前写了一版
但是感觉不特别满意,于是到处去搜了搜
发现微软的vscode的一个相关的issue,指出文件资源管理器和vscode中的排序发生了不一致
https://github.com/microsoft/vscode/issues/27759
然后我大概找到了vscode里的文件名排序js源码:
https://github.com/microsoft/vscode/blob/main/src/vs/base/common/comparers.ts#L157
感觉还行,但我又发现一位朋友曾经写过的java版本的,就直接拿来用了
https://github.com/kookob/windows-filename-sort
效果还不错,勉强满足了需求hh
相关推荐
2021-07-14
mybatis-plus动态表名
却是平流无石处,时时闻说有沉沦。——唐•杜荀鹤 配置 123456789101112131415161718@Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); DynamicTableNameInnerInterceptor dynamicTableNameInnerInterceptor = new DynamicTableNameInnerInterceptor(); HashMap<String, TableNameHandler> map = new HashMap<String, TableNameHandler>(2) {{ put("user", (sql, tableName) -> { St...
2023-04-13
mp wrapper小技巧
别让你的舌头超越你的思想。——第欧根尼 对于mp的wrapper,直接使用nested+or是可以正确执行的 例如: 1Db.list(Wrappers.lambdaQuery(UserInfo.class).or().eq(UserInfo::getName, "Jon")); 生成 122023-04-13 22:39:54.858 DEBUG 20668 --- [ main] o.d.s.s.p.m.m.UserInfoMapper.selectList : ==> Preparing: SELECT id,name,age,email,version,gmt_deleted FROM user_info WHERE gmt_deleted='2001-01-01 00:00:00' AND (name = ?)2023-04-13 22:39:54.858 DEBUG 20668 --- [ main] o.d.s.s.p.m.m.UserInfoMapper.selectL...
2022-02-26
Files.delete
终点线只是一个记号而已,其实并没有什么意义,关键是这一路你是如何走的。——村上春树 在java中我们除了用这种方式删除文件: 12345678File file = new File("D:\\file\\projects\\img-comparison-demo\\target\\generated-sources");if (file.exists()) { try { boolean delete = file.delete(); } catch (Exception e) { e.printStackTrace(); }} 还可以使用Files工具类: 12345try { boolean delete = Files.deleteIfExists(Paths.get("D:\\file\\projects\\img-comparison-demo\\target\\generated-sources"))...
2022-01-19
hutool-bom
一个能思想的人,才真是一个力量无边的人。——巴尔扎克 官方文档 我们在使用hutool时可以像如下方式引入单独引入所需模块: 123456789101112131415161718192021222324252627282930313233343536373839<?xml version="1.0" encoding="UTF-8"?><project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <properties> <hutool.versi...
2024-10-22
protocol示例
没有意义的事物是最美丽的。——《新名字的故事》 github: https://github.com/protocolbuffers/protobuf 官方文档: https://protobuf.dev/ Protocol Buffers(又名 protobuf)是 Google 的语言中立、平台中立、可扩展的机制,用于序列化结构化数据。您可以在protobuf 的文档中了解更多信息。 使用 Protocol Buffers 在前后端传输数据的示例。后端使用 Spring Boot,前端使用 Parcel 和 JavaScript,前后端通过 .proto 文件定义的 Person 类进行数据传输。 后端 (Java - Spring Boot) pom.xml (包含 Spring Boot 和 Protocol Buffers 的依赖): 12345678910111213141516171819202122232425262728293031323334353637383940414243444546<project xmlns="http://mav...
2020-12-04
解决lambda中必须为final的方式
一个真正而且热切地工作的人总是有希望的——只有怠惰才是永恒的绝望。——卡莱尔 在开发中使用lambda经常出现一个问题 编译提示我们lambda中使用的变量必须为final或者effectively final 1234567891011int i = 2;BigDecimal j = BigDecimal.ZERO;j = BigDecimal.TEN;List<String> stringList = mpUserMapper.selectList(Wrappers.lambdaQuery()).stream().map(UserDataObject::getUsername).collect(Collectors.toList());stringList = stringList.stream().distinct().collect(Collectors.toList());List<String> strings = new ArrayList<>(10);strings.stream().peek(s -> {...

阿超
我的名字叫阿超 年龄25岁 家在北京市 职业是软件开发 每天最晚也会在八点前回家 不抽烟 酒浅尝辄止 晚上十二点上床 保证睡足八个小时 睡前写一篇博客 再做二十分钟俯卧撑暖身 然后再睡觉 基本能熟睡到天亮 像婴儿一样不留下任何疲劳和压力 就这样迎来第二天的早晨 健康检查结果也显示我很正常 我想说明我是一个不论何时都追求内心平稳的人 不拘泥于胜负 不纠结于烦恼 不树立使我夜不能寐的敌人 这就是我在这社会的生活态度
Follow Me公告
This is my Blog