栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java扫描文件夹下所有文件名

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java扫描文件夹下所有文件名

MIS内容项目系统,基于文档资源管理管理的,需要扫描一个文件夹下面的所有文件,需求的代码实现。

package q.test.filescanner; 

import java.io.File; 
import java.util.ArrayList; 
import java.util.linkedList; 

import q.test.filescanner.exception.ScanFilesException; 

 
public class FolderFileScanner { 

  private static ArrayList scanFiles = new ArrayList(); 

   
  private static linkedList queueFiles = new linkedList(); 


   
  public static ArrayList **scanFilesWithRecursion**(String folderPath) throws ScanFilesException{ 
    ArrayList dirctorys = new ArrayList(); 
    File directory = new File(folderPath); 
    if(!directory.isDirectory()){ 
      throw new ScanFilesException('"' + folderPath + '"' + " input path is not a Directory , please input the right path of the Directory. ^_^...^_^"); 
    } 
    if(directory.isDirectory()){ 
      File [] filelist = directory.listFiles(); 
      for(int i = 0; i < filelist.length; i ++){ 
  
 if(filelist[i].isDirectory()){ 
 //绝对路径名字符串
   dirctorys.add(filelist[i].getAbsolutePath()); 
    
   **scanFilesWithRecursion**(filelist[i].getAbsolutePath()); 
 } 
  
 else{ 
   scanFiles.add(filelist[i].getAbsolutePath()); 
 } 
      } 
    } 
    return scanFiles; 
  } 

   
  public static ArrayList scanFilesWithNoRecursion(String folderPath) throws ScanFilesException{ 
    File directory = new File(folderPath); 
    if(!directory.isDirectory()){ 
      throw new ScanFilesException('"' + folderPath + '"' + " input path is not a Directory , please input the right path of the Directory. ^_^...^_^"); 
    } 
    else{ 
      //首先将第一层目录扫描一遍 
      File [] files = directory.listFiles(); 
      //遍历扫出的文件数组,如果是文件夹,将其放入到linkedList中稍后处理 
      for(int i = 0; i < files.length; i ++){ 
 if(files[i].isDirectory()){ 
   queueFiles.add(files[i]); 
 }else{ 
   //暂时将文件名放入scanFiles中 
   scanFiles.add(files[i].getAbsolutePath()); 
 } 
      } 

      //如果linkedList非空遍历linkedList 
      while(!queueFiles.isEmpty()){ 
 //移出linkedList中的第一个 
 File headDirectory = queueFiles.removeFirst(); 
 File [] currentFiles = headDirectory.listFiles(); 
 for(int j = 0; j < currentFiles.length; j ++){ 
   if(currentFiles[j].isDirectory()){ 
     //如果仍然是文件夹,将其放入linkedList中 
     queueFiles.add(currentFiles[j]); 
   }else{ 
     scanFiles.add(currentFiles[j].getAbsolutePath()); 
   } 
 } 
      } 
    } 

    return scanFiles; 
  } 
} 


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。

转载请注明:文章转载自 www.mshxw.com
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号