根据指定的文件目录来创建一个文件对象
在某一个目录下创建多级子目录
package FileOperation;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
/**
* 根据指定的文件目录来创建一个文件对象
* 在某一个目录下创建多级子目录
* 会使用到集合:
* 根据指定文件目录,获取该文件目录当中的所有文件夹列表(只获取当前目录当中的)
* 格局指定的文件目录来获取所有的java源文件的文件名
*
* @author Administrator
*
*/
public class FileOper {
// 在指定的父目录路径下创建一个目录文件对象
public void createFile(String parentPath,String fileName)
{
// 实例化一个文件对象来指向指定的父目录
File parent=new File(parentPath);
if(parentPath !=null && parent.exists())
{
// 判断指定的的文件目录是否存在
System.out.println("文件目录存在");
if(parent.isDirectory())
{
System.out.println("当前路径是一个目录文件对象");
// 在指定的文件目录下创建一个子文件对象,即使得该子文件对象指向指定目录的子文件对象
File subFile=new File(parent, fileName);
// System.out.println("subFile.exists="+subFile.exists());
if(!subFile.exists())
{
System.out.println("当前文件目录名不存在,开始进行子目录的创建操作");
// 调用子文件对象来在指定的位置来创建一个文件目录
if(subFile.mkdir())
{
System.out.println("文件目录创建成功");
}
else
System.out.println("文件目录创建失败");
}
else
{
System.out.println("当前子文件目录已经存在");
}
}
else
{
System.out.println("当前目录路径并不是一个目录文件对象");
}
}
else
{
System.out.println("文件目录不存在");
}
}
public void createFile(File parentFile,String fileName)
{
boolean flag=false;
if(fileName.endsWith(".xls"))
{
if(parentFile.exists())
{
if(parentFile.isDirectory())
{
File file=new File(parentFile, fileName);
if(!file.exists())
{
try {
file.createNewFile();
System.out.println("文件创建成功");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("在指定的目录下进行文件对象的创建失败");
}
}
else
{
System.out.println("所创建的文件对象已经存在");
}
}
else
{
System.out.println("当前文件并非文件目录");
}
}
else
{
System.out.println("文件目录不存在");
parentFile.mkdir();
}
}
else
{
System.out.println("文件对象的后缀名必须是.xls");
}
}
// 获取指定文件目录下的全部的子文件对象并进行输出
public List getSubAllFile(String pathe)
{
File parentFile=new File(pathe);
List<File> fileList=new ArrayList<>();
List<File> dirList=new ArrayList<>();
List<List<File>> lists=new ArrayList<>();
if(pathe!=null && parentFile.isDirectory())
{
// 获取当前指定目录文件对象的所有子文件对象
File[] files=parentFile.listFiles();
for (File file : files) {
if(file.isFile())
{
System.out.println("文件名:"+file.getName());
fileList.add(file);
}
if(file.isDirectory())
{
System.out.println("目录名:"+file.getName());
dirList.add(file);
}
}
lists.addAll((Collection<? extends List<File>>)fileList);
lists.addAll((Collection<? extends List<File>>) dirList);
// 对集合对象进行迭代输出
System.out.println("调用迭代器来对象集合对象当中的内容进行输出操作:");
Iterator<List<File>> iterator=lists.iterator();
while(iterator.hasNext())
{
System.out.println(iterator.next());
}
}
return lists;
}
// 获取指定文件夹对象当中的所有java源文件对象并进行输出
public void getJavaFiles(String path)
{
File file=new File(path);
List<File> list=new ArrayList<File>();
if(path!=null && file!=null)
{
File[] files=file.listFiles();
for (File subFile : files) {
if(subFile.getName().endsWith(".java"))
{
list.add(subFile);
}
}
Iterator<File> iterator=list.iterator();
System.out.println("java源文件为:");
while(iterator.hasNext())
{
System.out.println(iterator.next());
}
}
else
{
System.out.println("所输入的文件对象或文件名为空");
}
}
// 以递归的方式来获取指定文件夹当中的所有文件对象
public void getFiles(String path,List<File> fList)
{
File file=new File(path);
if(path!=null && file!=null)
{
File[] files=file.listFiles();
for (File subFile : files)
{
if(subFile.isFile())
{
fList.add(subFile);
// System.out.println("fileName="+subFile.getName());
}
if(subFile.isDirectory())
{
// System.out.println("DirFileName:"+subFile.getPath());
// list.addAll(getFiles(subFile.getPath()));
getFiles(subFile.getPath(), fList);
}
}
}
else
{
System.out.println("文件名或文件路径为空");
}
}
public static void main(String[] args) {
FileOper oper=new FileOper();
// oper.createFile("C:/Users/Administrator/Desktop/javatest","subDir");
// File file=new File("C:/Users/Administrator/Desktop/javatest/test2");
// oper.createFile(file, "file.xls");
// oper.getSubAllFile("C:/Users/Administrator/Desktop");
// oper.getJavaFiles("C:/Users/Administrator/Desktop/javaEEConde2/projectTraining1/src/collection");
List<File> fList=new ArrayList<>();
oper.getFiles("C:/Users/Administrator/Desktop/javaEEConde2/projectTraining1",fList);
Iterator<File> iterator=fList.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
}
}