【学习分享】定位目录及深层目录的指定格式文件(查找路径下文件)
定位目录文件夹下的压缩包
首先,引入的方法包
import java.io.File
其次,用到的方法
// 1
File fileArr[] = zipFile.listFiles(); //获取目录文件夹内所有File
// 2
fileArr[i].isDirectory(); //判断目录内的File是否为文件件
// 3
fileArr[i].getName().contains("zip"); //获得文件名,并判断文件名中是否含有"zip"字符串
然后,整理一下思路
1. 参数:String filePath //探索的根目录。
2. 方法listFiles(),获得一级根目录下的所有文件或文件夹,放到数组里。
3. [for循环] 遍历整个数组。
4. [for循环体]中用isDirectory()方法进行[if判断]。
6. isDirectory()
a. true (File为目录文件夹),fileArr[i].getName() 拼接新的路径,递归进入深层路径进行再次探索目标zip文件
b. flase (File为文件),fileArr[i].getName().contains("zip") 判断文件名称是否包含"zip"字符串。拼接路径。
7. 返回值:返回定位到的zip文件路径。
最后,代码实现
/**
* 查找zip包
* @param filePath
* @return
*/
public String findZipFile(String filePath){
String path = "";
File zipFile = new File(filePath);
File fileArr[] = zipFile.listFiles();//获取文件夹内所有文件
for (int i = 0; i < fileArr.length; i++) {//循环遍历
File fs = fileArr[i];//获取数组中的第i个
if (fs.isDirectory()) {//是否为目录文件夹
String fPath = filePath + File.separator + fs.getName();
//递归查找zip包
path = findZipFile(fPath);
} else {
if (fs.getName().contains("zip")){//找到zip压缩包
path = filePath + File.separator+fs.getName();
}
}
}
System.out.println("++++++++++压缩包文件路径:"+path+"+++++++++++++++");
return path;
}
输出结果:
++++++++++压缩包文件路径:D:\Test.zip+++++++++++++++
欢迎学习交流!