35 扫描目录下的文件和目录并进行排序输出

package com.da.tool.util;

import java.io.File;
import java.util.*;

/**
 * 文件和目录排序
 */
public class FileSort {

    public static void main(String[] args) {
        String path ="D:\\project\\da-tool";

        File file = new File(path);
        List<File> files = Arrays.asList(file.listFiles());
        //排序前
        System.out.println("排序前:");
        for (File file1 : files) {
            System.out.println(file1.getPath());
        }

        Collections.sort(files, new Comparator<File>() {
            @Override
            public int compare(File file1, File file2) {
                if(file1.isDirectory() && file2.isFile()){
                    return 1;
                }
               else if(file1.isFile() && file2.isDirectory()){
                    return -1;
                }else{
                    return file1.getName().compareTo(file2.getName());
                }
            }
        });
        System.out.println("排序后:");
        for (File file1 : files) {
            System.out.println(file1.getPath());
        }

    }
}
排序前:
D:\project\da-tool\.idea
D:\project\da-tool\da-tool.iml
D:\project\da-tool\defaultProp.properties
D:\project\da-tool\pom.xml
D:\project\da-tool\src
D:\project\da-tool\target
D:\project\da-tool\userProp.properties
排序后:
D:\project\da-tool\da-tool.iml
D:\project\da-tool\defaultProp.properties
D:\project\da-tool\pom.xml
D:\project\da-tool\userProp.properties
D:\project\da-tool\.idea
D:\project\da-tool\src
D:\project\da-tool\target

Process finished with exit code 0
时间: 2024-10-28 22:03:19

35 扫描目录下的文件和目录并进行排序输出的相关文章

操作目录下的文件或目录

1.显示/var目录下所有以l开头,以一个小字母结尾,且中间出现一位数字的文件或目录:            # ls /var/l*[[:digit:]]*[[:lower:]] 2.显示/etc目录下,以任意一位数字开头,且以非数字结尾的文件或目录:            # ls -d /etc/[[:digit:]]*[^[:digit:]]  3.显示/etc目录下,以非字母开头,后面跟了一个字母及其它任意长度字符的文件或目录:            # ls -d /etc/[^[:

.gitignore排除(不忽略)二级以上目录下的文件或目录

在.gitignore中,结合使用/*和!filename的语法,可以达到除特定文件或目录外全部忽略的目的.但当希望不忽略的文件或目录在二级或多级目录下时,如果这样写 /* !/sub/subsub/  是不能达到预期效果的,这会导致根目录下的全部文件被忽略,包括/sub/subsub/.因为.gitignore语法中,!filename只能对同级的/*生效,因此如果要在根目录中排除多级目录中的文件,需要重复地指明每一级目录的忽略规则.下面以忽略根目录中的全部文件,但不忽略/1st/2nd/目录

个人笔记:PHP递归删除指定目录下的文件和目录

function DelDir($path){ //给定的目录不是一个文件夹 if(!is_dir($path)){ return null; } // 1 打开目录 $dir =opendir($path); // 去除. 和.. while ($filename =readdir($dir)) { if ($filename =='.' || $filename == '..') { continue; } // 拼接完整路径,不拼接会到当前路径下找 $filepath =$path.'/'

(实用篇)PHP不用递归遍历目录下所有文件的代码

<?php /** * PHP 非递归实现查询该目录下所有文件 * @param unknown $dir * @return multitype:|multitype:string */ function scanfiles($dir) { if (! is_dir ( $dir )) return array (); // 兼容各操作系统 $dir = rtrim ( str_replace ( '\\', '/', $dir ), '/' ) . '/'; // 栈,默认值为传入的目录 $

Java实现列出目录下所有文件和文件夹

1 package com.filetest; 2 3 import java.io.File; 4 import java.util.Scanner; 5 6 public class fileview { 7 8 public static void main(String args[]){ 9 10 view(); //调用查看文件列表函数 11 12 } 13 14 private static void view() { 15 16 Scanner scanner=new Scanne

Asp.net 4.0,首次请求目录下的文件时响应很慢

原文:Asp.net 4.0,首次请求目录下的文件时响应很慢 1. 问题起因2. 尝试过的处理思路3. 解决方法 1. 问题起因 一个从VS2003(.Net Framework 1.1)升级到.net framework 4.0的项目,每次编译或者部署到服务器上后,首次请求任何一个目录下的默认页面时,都要耗时3~5秒:而以前使用.net framework 1.1的时候,没有这个问题. 我在页面上开启Trace="true"来跟踪,发现页面的处理时间并不久(IIS重启,首次打开页面时

Python 读取某个目录下的文件

读取某个目录下的文件,如'/Users/test/test_kmls'目录下有test1.txt.test2.txt. 第一种方法读出的all_files是test1.txt.test2.txt 1 import os 2 3 kml_path=os.path.abspath('/Users/test/test_kmls') 4 all_files=os.listdir(kml_path) 5 for file in all_files: 6 print file 第二种方法可以获得文件的全路径

php读取目录下的文件

工作需要写了一个读取指定目录下的文件,并显示列表,点击之后读取文件中的内容 高手拍砖,目录可以自由指定,我这里直接写的是获取当前文件目录下面的所有文件 </pre> <?php /** * 读取指定目录下面的文件内容 * @author Administrator * */ class Catlog { /** * 要读取的目录 * @var string */ private $dir; /** * 文件名中必须存在 * @var string */ private $str = 'p

前两天有人问怎么取得一个目录下的文件,下面就是例子

<%@ Language=VBScript %> <% '================================================================ '函数名称:FileList '函数功能:列出目录下所有文件 '主要参数说明: '1--FolderUrl 虚拟路径 不可为空 '2----FileExName 文件扩展名 '函数返回值:收文记录 '====================================================