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

网友投稿 292 2023-02-18


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

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

package q.test.filescanner;

import java.io.File;

import java.util.ArrayList;

import java.util.LinkedList;

import q.test.filescanner.exception.ScanFilesException;

/**

* @author

*/

public class FolderFileScanner {

private static ArrayList scanFiles = new ArrayList();

/**linkedList实现**/

private static LinkedList queueFiles = new LinkedList();

/**

* TODO:递归扫描指定文件夹下面的指定文件

* @return ArrayList

* @author

* @time 2017年11月3日

*/

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;

}

/**

*

* TODO:非递归方式扫描指定文件夹下面的所有文件

* @return ArrayList

* @param folderPath 需要进行文件扫描的文件夹路径

* @author

* @time 2017年11月3日

*/

public static ArrayList scanFilesWithNoRecursion(String folderPath) throws ScanFilesException{

File directory = new File(folderPhttp://ath);

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());

}

}

http:////如果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;

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:在线接口api文档(在线api接口文档系统)
下一篇:Angular浏览器插件Batarang介绍及使用
相关文章

 发表评论

暂时没有评论,来抢沙发吧~