2 bicel bicel 于 2014.04.25 20:44 提问

递归遍历指定目录下的所有文件,依次按目录的名称与文件的名称排序

递归遍历指定目录下的所有文件,按依次按目录的名称与文件排序,
首先同一级目录的按目录名称排序,然后按文件的名称排序。

思路一:递归获取到所有文件后,根据件的全路径作在比较器中比较排序(file0.getAbsolutePath().compareTo(file1.getAbsolutePath())),这样可能不会很准。。

求大神支招啊!

想要的排序结果如下:
d:/update/spc333/1/aa.txt
d:/update/spc333/1/bb.txt
d:/update/spc333/2/aa.txt
d:/update/spc334/1/aa.txt
d:/update/spc334/1/bb.txt
d:/update/spc334/2/aa.txt
d:/update/spc334/3/bb.txt
d:/update/spc334/3/1/aa.txt
d:/update/spc334/3/1/bb.txt
d:/update/spc335/1/aa.txt
d:/update/spc335/1/bb.txt
....

目录层级不止这几层,可能是任意层

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
使用递归打印该目录下的所有子目录和文件
传入一个目录,以树形方式展现该目录中的所有子目录和文件,另外,在展现的时候将目录排在上面,文件排在下面,每一层要加上缩进package com.zkh.io;import java.io.File; import java.util.ArrayList;public class TestFile2 { private static int number; public static v
[Linux C]递归遍历指定目录下的子目录和文件
/* 功能:演示了在Linux下利用C语言递归遍历指定目录下的子目录(不含隐藏目录)和文件 */ #include #include #include void List(char *path) { struct dirent *ent = NULL
c# 取得指定目录下的所有子目录名(不含路径)
// 取得指定目录下的所有子目录名(不含路径)  string s = @"D:\data\file"; string[] dirs = Directory.GetDirectories(s); List list=new List(); foreach (string item in dirs) {
通过递归查询指定目录下的所有文件和子文件夹下的指定文件名
递归查询指定目录下的指定文件路径     自己写了一个简单的小方法,通过递归的方式找到指定目录下,想要的文件,包括目录下和子目录下的所有文件。 package research; import java.io.File; import java.util.ArrayList; import java.util.List; /** * @author 关世杰 * @since 2016.
python顺序的读取文件夹下名称有序的文件
import os path="/home/test/" #待读取的文件夹 path_list=os.listdir(path) path_list.sort() #对读取的路径进行排序 for filename in path_list: print(os.path.join(path,filename))
利用Python递归列举目录下的文件并进行有序的排列
利用递归列举目录下的文件并进行有序的排列 注释:本案例使用的操作系统是mac 不确保Windows下正常 用途 :本例子写初衷是为了实现文件下载较好的管理历史下载文件可以对获取出来所有的文件筛选出自己想要删除操作的文件 #!/usr/bin/env python3 # -*- coding: utf-8 -*- import os.path 'use a recursion to li
C# 读取文件夹下文件,按照名字排序
正常的读取文件时非常简单的,按照文件名排序就要参照Windows的排序, 往往添加排序处理后与windows的排序规则不统一,所以要学会调用windows 的排序dll,可以节省很多时间。 //APP_DATA\Advertisement DirectoryInfo folder = new DirectoryInfo("./APP_DATA/Advertisement"); if (
C#中读取文件夹和文件时,根据文件夹或者文件名调整读取的顺序
当读取文件夹或者文件时,有时会遇到这样一个问题,文件夹或者文件的命名为1,2,3,4,5,6,7,8,9,10,11,12等,在电脑上面显示时,是按照递增的方式,可是当用C#来读取时,默认按照的顺序是1,10,11,12,2,20,21,3,4,5,6,7,8,9,如果对文件顺序要求很严格,这样明显不符合要求。那怎么对这样进行再次排序呢。
c#文件排序和文件夹排序
一、C#文件排序   1、按名称顺序排列   ///   /// C#按文件名排序(顺序)   ///   /// 待排序数组   private void SortAsFileName(ref FileInfo[] arrFi)   {     Array.Sort(arrFi, delegate(FileInfo x, FileInfo y) { retur
显示文件夹下面所有文件的详细信息并按照文件大小倒序排序
find /etc -type f | xargs ls -l | sort -rn -k 5