您的位置:首页 > 编程语言 > Java开发

File相关(创建文件及目录)

2016-04-09 00:00 225 查看
摘要: 当前目录下创建文件createNewFile()或目录mkdir();删除文件和目录(用到递归) delete();创建多级目录 mkdirs();获取目录中的子项 File[] subs = dir.listFiles(); 文件过滤器筛选文件 File[] subs = dir.listFiles(filter);。

当前目录下创建文件createNewFile()或目录mkdir();删除文件和目录(用到递归) delete();创建多级目录 mkdirs();获取目录中的子项 File[] subs = dir.listFiles(); 文件过滤器筛选文件 File[] subs = dir.listFiles(filter);。

import java.io.File;

import java.io.FileFilter;

import java.io.IOException;

/**
* File相关
* @author Romanceling
*
*/
public class FileTest {
public static void main(String[] args) throws IOException {
/*
*
/*
* boolean exists()
* 判断File表示的文件或目录是否真实存在
*/
if(!file.exists()){
//创建该文件
file.createNewFile();
System.out.println("创建完毕!");
}

/*
* 删除test.txt文件
*/
if(file.exists()){
file.delete();
System.out.println("删除完毕!");
}

/*
* 在当前目录下创建一个目录(路径)demo
*/

File dir = new File("demo");
if(!dir.exists()){
//创建一个目录
dir.mkdir();
System.out.println("创建完毕!");
}

//删除一个目录

if(dir.exists()){
/*
* 使用delete删除目录时,必须保证该
* 目录是一个空目录(不含有任何子项)
* 才可以将其删除.
*/
dir.delete();
System.out.println("删除完毕!");
}

/**删除多级目录
* 删除给定的File对象表示的文件或目录
* 此时需要用到递归
*/
* public static void delete(File file){
* if(file.isDirectory()){ //如果是目录
* //先删除该目录中所有内容
* File[] subs = file.listFiles();
* for(File sub : subs){
* delete(sub); //递归

* }

* file.delete(); //文件或者空的目录可以直接删除

* }

*/

/*
* 在当前目录下创建一个多级目录:
* a/b/c/d/e/f
*/
File dir = new File(
"a"+File.separator+ //File.separator 代表"/"(Linux系统中) 或"\"(Windows系统中)
"b"+File.separator+
"c"+File.separator+
"d"+File.separator+
"e"+File.separator+
"f"
);
if(!dir.exists()){
/*
* mkdirs在创建当前目录的同时会将
* 其所有不存在的父目录一同创建出来
*/
dir.mkdirs();
System.out.println("创建完毕!");
}

/*
* 获取当前目录中的所有内容
*/
File dir = new File(".");
//获取一个目录中的所有子项
File[] subs = dir.listFiles();

for(File sub : subs){
if(sub.isFile()){
System.out.print("文件:");
}else{
System.out.print("目录:");
}
System.out.println(sub.getName());
}

/*
* 配合过滤器(自定义类MyFilter),获取当前目录下所有名字以"."开头的子项
*/
File dir = new File(".");
MyFilter filter = new MyFilter();
/*
* 重载的listFiles方法返回的子项是满足给定
* 过滤器要求的子项,其他则被忽略
*/
File[] subs = dir.listFiles(filter);
for(File sub : subs){
System.out.println(sub.getName());
}

/*也可以用匿名内部类的方式简写文件过滤器(FileFilter)

* File dir = new File(".");
* FileFilter filter = new FileFilter(){
* public boolean accept(File file){
* return file.isFile();
* }
* };
* File[] subs = dir.listFiles(filter);

*/

}
}

/**
* 使用文件过滤器(FileFilter)获取一个目录中满足条件的子项
*
*/

class MyFilter implements FileFilter{
/**
* 过滤条件:名字是以"."开头的
*/
public boolean accept(File file) {
String name = file.getName();
System.out.println("正在过滤:"+name);
return name.startsWith(".");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java File