为什么我对照片的排序总是与Windows系统的不一样呢?
我们在文件夹中有一批图片在进行查看的时候当排序方式是日期的时候到底是按照怎么样的顺序排列的呢在 c# 里面我们尝试把它认为是图片的创建时间(new FileInfo(F:\\1.png).CreationTime), 也尝试让它是图片的最后修改时间(new FileInfo(F:\\1.png).LastWriteTime), 也尝试使用 Shlwapi.DLL[System.Runtime.InteropServices.DllImport(Shlwapi.dll, CharSet CharSet.Unicode)] private static extern int StrCmpLogicalW(string param1, string param2);但是都没有看到与系统一致的顺序。尤其对于图片的创建时间当我们把图片拷贝到另外一台电脑的时候它的创建时间又进行了更新。不过我们突然发现了图片包含了非常丰富的属性发现了没这里的拍摄日期就是我们需要的排序时间, 按照 EXIF 标签 里面这个时间排序得到的结果与系统排序的顺序是完全一致的// EXIF 标签拍摄原图时间 / 数字化时间 / 修改时间 private static readonly int[] DateTakenIds { 0x9003, 0x9004, 0x0132 }; public static DateTime? TryGetDateTaken(string path) { using (var fs new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) using (var img Image.FromStream(fs, useEmbeddedColorManagement: false, validateImageData: false)) { foreach (var id in DateTakenIds) { if (Array.IndexOf(img.PropertyIdList, id) 0) continue; var prop img.GetPropertyItem(id); // EXIF 字符串形如 2026:06:26 13:52:00 var s Encoding.ASCII.GetString(prop.Value).Trim(\0, , \r, \n); if (DateTime.TryParseExact(s, yyyy:MM:dd HH:mm:ss, CultureInfo.InvariantCulture, DateTimeStyles.AssumeLocal, out var dt)) return dt; } } return null; // 没有拍摄信息 }

相关新闻

TranslucentTB Hook注入失败?深入解析Windows任务栏美化工具的核心故障与修复方案

TranslucentTB Hook注入失败?深入解析Windows任务栏美化工具的核心故障与修复方案

TranslucentTB Hook注入失败?深入解析Windows任务栏美化工具的核心故障与修复方案 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB …

2026/9/26 12:02:03 阅读更多 →
超级取证大师 MCP 工具赋能电子数据取证

超级取证大师 MCP 工具赋能电子数据取证

超级取证大师 MCP 工具赋能电子数据取证 在实际的工作当中经常会碰到对手机或者计算机的数据进行分析,但手机和计算机的检材数据量大且需要做数据或者人物的关联分析,如果使用人工的方式会比较耗费时间,但如果这些动作能够交给 AI 分析&#…

2026/9/29 12:16:39 阅读更多 →
LangGraph实战:StateGraph与MessageGraph选型指南与AI Agent架构设计

LangGraph实战:StateGraph与MessageGraph选型指南与AI Agent架构设计

1. 项目概述:从“八股文”到实战选型最近在搞AI Agent项目,特别是涉及到多Agent协作和复杂流程编排时,StateGraph和MessageGraph这两个概念就绕不过去了。这俩词听起来挺唬人,感觉是某种高深的理论,但实际上&#xff0…

2026/9/29 12:27:23 阅读更多 →

最新新闻

Git本地操作入门:从初始提交到分支回退的实用指南

Git本地操作入门:从初始提交到分支回退的实用指南

我一直觉得,Git 入门最该做的第一件事,不是去搭远程仓库,也不是背一堆命令,而是先在本地把“提交”这件事记熟。无论你用的是 GitHub、Gitee,还是公司自建 GitLab,底层逻辑都一样:你先在本地完成…

2026/9/29 14:03:45 阅读更多 →
AI为什么总是“金鱼记忆“?用Clowder AI的记忆系统让它真正记住你

AI为什么总是“金鱼记忆“?用Clowder AI的记忆系统让它真正记住你

AI为什么总是"金鱼记忆"?用Clowder AI的记忆系统让它真正记住你 【免费下载链接】clowder-ai Build AI teams, not just agents. Hard rails, soft power, shared mission. 项目地址: https://gitcode.com/gh_mirrors/cl/clowder-ai 用过 AI 助手的…

2026/9/29 14:03:45 阅读更多 →
Java坦克大战源码拆解:从能跑到能改的实战指南

Java坦克大战源码拆解:从能跑到能改的实战指南

简介:这份资源是韩顺平Java坦克大战的完整项目包,面向Java初学者与游戏开发入门者,帮助读者通过一个可运行的小型游戏理解面向对象编程、事件处理与图形界面开发。压缩包共48个文件,约2.31MB,包含10个java源文件、11个…

2026/9/29 14:03:45 阅读更多 →
Ultralytics 集成 SAM2:快速实现图像分割与半自动标注

Ultralytics 集成 SAM2:快速实现图像分割与半自动标注

简介:这份资源面向计算机视觉方向的开发者与深度学习学习者,提供基于Ultralytics框架调用SAM2(Segment Anything Model 2)进行图像分割的模型权重与配套测试代码,可用于快速验证提示分割与全图分割等典型场景&#xff…

2026/9/29 14:03:45 阅读更多 →
Redis 接入 AI 实战:语义缓存、向量检索与分布式锁全解析

Redis 接入 AI 实战:语义缓存、向量检索与分布式锁全解析

"Redis 已正式接入 AI!"这话我一听第一反应也是:又来一个蹭热点的?但把最近 Redis 官方的动作和各大 LLM 框架的集成列表翻一遍之后,我收回这个质疑。Redis 不仅没有在 AI 时代掉队,反而以"实时数据底座…

2026/9/29 14:03:45 阅读更多 →
OpenVINO模型优化器实战:从PyTorch到IR的推理加速指南

OpenVINO模型优化器实战:从PyTorch到IR的推理加速指南

上个月接了个边缘设备部署的项目,对方给了一个PyTorch的语义分割模型,要求在一台只带CPU的盒子上跑到接近实时。我第一反应不是换更贵的硬件,而是先把模型过一遍Model Optimizer。结果FP16转换加上一次层融合优化,推理耗时从3.5秒…

2026/9/29 14:02:45 阅读更多 →

日新闻

开源模型端侧落地实战:量化、推理加速与Agent上下文管理

开源模型端侧落地实战:量化、推理加速与Agent上下文管理

1. 从"追平"到"端侧落地":开源模型这波到底变了什么如果你最近半年一直在关注模型圈的动态,应该能明显感觉到一个拐点:开源模型和闭源旗舰之间的差距,正在从"代差"变成"身位差"。以前大家…

2026/9/29 0:00:05 阅读更多 →
AI Evals实战指南:从零搭建LLM应用评估体系与CI/CD集成

AI Evals实战指南:从零搭建LLM应用评估体系与CI/CD集成

1. 为什么AI Evals值得你花时间搞明白做LLM应用的人,迟早会撞上同一堵墙:模型输出飘忽不定,今天答得好好的,明天换个问法就胡说八道。你改了一版提示词,感觉好像好了点,但到底好了多少?说不清。…

2026/9/29 0:00:05 阅读更多 →
Java采购管理系统实战:从数据库设计到事务一致性

Java采购管理系统实战:从数据库设计到事务一致性

简介:这是一套面向Java Web初学者与课程设计者的采购管理系统完整源码,采用JSP技术搭建,配合MySQL数据库,用于解决企业采购信息的管理问题,适合作为毕业设计、课程大作业或进销存类项目的参考模板。系统实现了用户登录…

2026/9/29 0:00:05 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/29 8:16:59 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/28 9:47:26 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/29 8:24:48 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/28 16:55:15 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/29 5:58:00 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/29 3:55:56 阅读更多 →