文件名称排序

第一次写博客练习下

1 定义个文件比较类

public class FilesNameComparerClass :IComparer<string>
{

[DllImport("shlwapi.dll", CharSet = CharSet.Unicode)]
private static extern int StrCmpLogicalW(string psz1, string psz2);

public int Compare(string x, string y)
{
return StrCmpLogicalW(x, y);
}
}

在Windows XP以后,资源管理器的文件名默认排序准则就调用了StrCmpLogicalW。

C#中对的StrCmpLogicalW导入方法为:

[DllImport("shlwapi.dll", CharSet = CharSet.Unicode)]
       private static extern int StrCmpLogicalW(string psz1, string psz2);

2. 调用

  DirectoryInfo di = new DirectoryInfo(filePath);

  FileInfo[] fileList = di.GetFiles("*.*");

fileList = fileList.OrderBy(s1 => s1.Name,new FilesNameComparerClass()).ToArray();

时间: 2024-10-13 20:27:16

文件名称排序的相关文章

C# 模拟windows文件名称排序(使用windows自带dll)

[DllImport("shlwapi.dll", CharSet = CharSet.Unicode)] private static extern int StrCmpLogicalW(string psz1, string psz2); /// <summary> /// 根据路径查到文件,按文件名称排序,智能排序,非ASCII码排序 /// </summary> /// <param name="pathToVersions"&

文件名称排序 字符串序+数字序 python

# -*-coding:utf8-*- """ 基于字符串数字混合排序的Python脚本 """ def is_number(s): try: float(s) return True except ValueError: pass try: import unicodedata unicodedata.numeric(s) return True except (TypeError, ValueError): pass return False

java file.listFiles()按文件名称、日期、大小排序

1:按 文件名称 排序是什么规则呢? windows的命名规则是,特殊字符(标点.符号)> 数字 > 字母顺序 > 汉字拼音.首字规则,首字相同看第二个,依次类推… 例如:全是数字的情况,100<200<300 :111<121<131; 111<112<113; 2:按 文件日期 排序是什么规则呢? 按 文件日期 排序分两种: (1)按文件创建日期排序(比较特殊)(2)按文件修改日期排序文件创建日期排序:也就字面意思啦. 文件修改日期排序:按照文件修

C#文件和文件文件夹按时间、名称排序-顺序与倒序

对于文件和文件夹有多种排序方式,常用的就是按创建或修改时间.按文件名排序.在 C# 中,按时间和文件名排序都十分简单,用数组提供的排序方法 Array.Sort() 一行代码就可以搞定,当然也可以用常用的排序方法,如快速排序.冒泡排序等. 文件排序的方法也适用于文件夹,只是传递的变量不同.为了便于使用,将分别列出C#文件排序和文件夹排序四种常用方法,分别为:按名称顺序与倒序排序.按时间顺序与倒序. 一.C#文件排序 1.按名称顺序排列 /// <summary> /// C#按文件名排序(顺序

python批量修改文件名称

参考文章:http://www.cnblogs.com/ma6174/archive/2012/05/04/2482378.html 最近遇到一个问题,在网上下载了一批视频课程,需要将每节课的名称标号,方便排序观看,正好看了两天python语法,就想着用python实现一个简单的改名字的程序,果然有人已经做了,参考一下前辈的文章代码,差了点资料,就实现了一个简单的改名字的程序. 代码是参考前辈的,如有侵权请联系. # -*- coding: utf-8 -*- 'change file name

STM32 相同头文件名称的路径问题

不知道大家有没有遇到过这种情况,同一个工程中有两个头文件分别在不同的路径,这两个路径同时也添加到了你的工程里面,那在某个c文件里面#include “xxx.h”后,系统会添加哪个头文件?还是两个都添加?博主测试结果为:添加排序在前的头文件. 比如在下面的工程中,同时包含了两个rng.h和rng.c文件(一个是CUBEMX自动生成的,另一个是博主找的第三方库,正点原子提供的). 这时,如果你在某个c文件中#include “rng.h”,系统只会将先添加路径中的rng.h包含进去,即下图中排序在

js兼容ie获取上传excel文件名称以及大小,绝对路径

/**  *   * @param obj file对象 document.getElementById(elementId);  * @returns  */ function getExcelFileFullPath(obj){ if (obj){ // ie if (window.navigator.userAgent.indexOf("MSIE") >= 1){ obj.select(); return document.selection.createRange().t

文件打开后任务栏里面不显示打开的文件名称

打开EXCEL文件时发现任务栏里面不显示打开文件的名称,当时的任务栏没有设置为自动隐藏,这就奇怪了.问度娘,说CTRL+ALT+DELETE打开任务管理器,新建任务,试了一下还是没有解决,最后没办法,在任务管理器里面把一些不需要的进程给结束了,当我把IE浏览器的进程结束后,任务栏立马就显示出刚才打开文件的名称.怪哉!没搞清楚他们之间的原因,但总归解决了问题,此法供大家参考! 文件打开后任务栏里面不显示打开的文件名称,布布扣,bubuko.com

修改OpenSSL默认编译出的动态库文件名称

在 Windows 平台上调用动态链接库 dll 文件时,有两种方式:a) 隐式的加载时链接:使用 *.lib (导入库)文件,在 IDE 的链接器相关设置中加入导入库 lib 文件的名称,或在程序中加入预编译指令 #pragma comment (lib,”*.lib”).b) 显式的运行时链接.不使用 *.lib (导入库)文件,使用 Load Library(),GetProcAddress() 函数来加载动态库中的函数.要注意的是在导入库 lib 文件内部包含了其对应 dll 文件的名称