`

JAVA里怎样对指定目录的文件按文件名排序

阅读更多

用一个简单的例子说明怎样对指定目录的文件按文件名排序。



代码
FileUtil.java
public class FileUtil {
    //for test
    public static void main(String []args) {
        File dirFile = new File("c:\\");
        
        File [] sortedFiles = listSortedFiles(dirFile);
    }

    //list sorted files
    public static File[] listSortedFiles(File dirFile) {
    assert dirFile.isDirectory();

        File[] files = dirFile.listFiles();
        
        FileWrapper [] fileWrappers = new FileWrapper[files.length];
        for (int i=0; i<files.length; i++) {
            fileWrappers[i] = new FileWrapper(files[i]);
        }
        
        Arrays.sort(fileWrappers);
        
        File []sortedFiles = new File[files.length];
        for (int i=0; i<files.length; i++) {
            sortedFiles[i] = fileWrappers[i].getFile();
        }
        
        return sortedFiles;
    }
}


class FileWrapper implements Comparable {
    /** File */
    private File file;
    
    public FileWrapper(File file) {
        this.file = file;
    }
     
    public int compareTo(Object obj) {
        assert obj instanceof FileWrapper;
        
        FileWrapper castObj = (FileWrapper)obj;
                
        if (this.file.getName().compareTo(castObj.getFile().getName()) > 0) {
            return 1;
        } else if (this.file.getName().compareTo(castObj.getFile().getName()) < 0) {
            return -1;
        } else {
            return 0;
        }
    }
    
    public File getFile() {
        return this.file;
    }
}


代码比较简单,就不加以解说了。

按照同样的做法,可追加按大小,扩展名等排序。

分享到:
评论
2 楼 qepwqnp 2009-12-07  
可以 谢谢了
1 楼 xuqb1 2009-11-20  
这样的排序无效,排出来的还是乱七八糟的。在有中文的情况下。

相关推荐

    基于Java开发的图片管理小程序

    浏览图片文件:程序支持浏览本地计算机中的图片文件,并按文件名、日期、大小等方式进行排序和查看。 上传图片文件:程序支持上传图片文件到指定的目录,并可以设置上传的文件名和存储路径。 下载图片文件:程序...

    java命令行文件管理器

    1、实现文件夹创建、删除、进入。  2、实现当前文件夹下的内容罗列... 4、实现指定文件的加密和解密。  5、实现多个文件的压缩和解压缩。  6、实现一个大文件的分割和合并。 7、实现把项目导出为可执行的*.jar文件

    JAVA上百实例源码以及开源项目

     Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥...

    JAVA上百实例源码以及开源项目源代码

     Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥...

    java开源包4

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包11

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包101

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包6

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包9

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包5

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包8

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包10

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包1

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包3

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java 面试题 总结

    Collections是针对集合类的一个帮助类,他提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作。 10、&和&&的区别。 &是位运算符,表示按位与运算,&&是逻辑运算符,表示逻辑与(and)。 11、HashMap...

    智能源码统计专家

    ☆1.5版:在1.2版的基础上增加了列表框中对统计记录进行排序和双击文件名直接浏览编辑文件内容的功能,同时改用多线程进行代码统计。 ☆1.2版:在1.0版的基础上新增对VB项目文件和&quot;;.frm&quot;;和&quot;;.bas&...

    疯狂JAVA讲义

    学生提问:当我们使用编译C程序时,不仅需要指定存放目标文件的位置,也需要指定目标文件的文件名,这里使用javac编译Java程序时怎么不需要指定目标文件的文件名呢? 13 1.5.3 运行Java程序 14 1.5.4 根据...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例154 按继承层次对类排序 201 实例155 查看内部类信息 202 7.2 反射的进阶 203 实例156 动态设置类的私有域 203 实例157 动态调用类中的方法 204 实例158 动态实例化类 205 实例159 创建长度可变的数组 206 实例...

Global site tag (gtag.js) - Google Analytics