File文件类
博客专区 > centrald 的博客 > 博客详情
File文件类
centrald 发表于2年前
File文件类
  • 发表于 2年前
  • 阅读 66
  • 收藏 5
  • 点赞 1
  • 评论 0

标题:腾讯云 新注册用户域名抢购1元起>>>   

摘要: File: 是文件和目录路径的抽象表示形式 ; 这个File可以表示文件也可以表示目录

File:    

构造方法:

  public File(String pathname) 使用文件路径创建一个File对象

  public File(String parent, String child) 使用父文件路径和子文件或者子文件路径创建一个File对象

  public File(File parent, String child) 使用父文件对象和子文件或者子文件路径创建一个File对象 

File类中和创建功能相关的方法

public boolean createNewFile(): 创建一个新的文件, 如果没有就创建一个,如果有就不创建

public boolean mkdir(): 创建目录 , 如果没有就创建一个,如果有就不创建

public boolean mkdirs(): 创建多级文件夹 , (也可以创建单级文件夹)

注:

绝对路径: 以盘符开始的路径

相对路径: 就是不是以盘符开始的路径就是相对路径

File类中和删除功能相关的方法

public boolean delete(): 删除文件或者文件夹

 注: 

                删除的时候不走回收站

File类中和重命名相关的方法

   public boolean renameTo(File dest):把文件重命名为指定的文件路径

 注: 

                如果目标文件的路径和原文件的路径一致,那么就是重命名

                如果不一致就进行重命名,然后剪切

 File类中和判断功能相关的方法

  public boolean isDirectory(): 判断是否是目录

public boolean isFile(): 判断是否是文件

public boolean exists(): 判断是否存在

public boolean canRead(): 判断是否可读

public boolean canWrite(): 判断是否可写

public boolean isHidden(): 判断是否隐藏

File类中和获取功能相关的方法

  public String getAbsolutePath(): 获取文件的绝对路径

public String getPath(): 获取相对路径

public String getName(): 获取文件名称

public long length(): 获取文件的大小 , 单位是字节

public long lastModified(): 获取最后一次修改时间

public String[] list(): 获取的是指定路径下所有的文件和文件夹对应的名称数组

public File[] listFiles(): 获取的是指定的路径下所有的文件和文件夹对应的File数组

举两个简单的例子:

1.获取指定目录下的指定文件

import java.io.File;

/*
 * 编写程序,获取指定目录下 所有的.java结尾的文件, 打印出文件的绝对路径(包含 子文件夹中的.java文
 * 
 * 思路:使用递归的方法
 * 	1.获取指定目录
 * 		1>如果是以.java结束的文件,则打印其绝对路径
 * 		2>如果是文件夹
 * 			(1)以.java结束的文件,打印其绝对路径
 * 			(2)如果是文件夹,则1
 */		
public class RecursionFileDemo {
	public static void main(String[] args) {
		//将指定目录封装成File对象
		File file = new File("E:\\code");
		//使用方法递归求指定路径下的文件
		RecursionFileFun(file);
	}
	//定义递归方法
	public static void RecursionFileFun( File file){
		
		//获取目录下所有文件对象
		File[] list = file.listFiles();
		for(File l:list){
			if(l.isFile()){
//				System.out.println(l.getName());
				//如果文件以.java结尾,则将其打印出来
				if(l.getName().endsWith(".java")){
					System.out.println(l.getAbsoluteFile());
				}
			}
			//如果是文件夹,则将其递归调用
			else{
				RecursionFileFun(l);
			}
		}
	}
}
/*
 * E:\code\MyName.java
E:\code\Test.java
 */

2.模拟rm -fr 递归删除文件夹下的文件

import java.io.File;

/*
 编写程序,删除 指定目录下的 所有文件与文件夹  (包含子文件夹) 
 */
public class RecursionFileDemo2 {
	public static void main(String[] args) {
		//将指定目录封装为File对象
		File file = new File("E://code");
		RecursionFileFun(file);
	}

	public static void RecursionFileFun(File file) {
		// TODO Auto-generated method stub
		//获取指定路径下的文件对象数组
		File[] list = file.listFiles();
		for(File l:list){
			//如果是文件,则将其直接删除
			if(l.isFile()){
				l.delete();
			}
			else{
				RecursionFileFun(l);
				//删除文件夹
				l.delete();
			}
			
		}
		
	}
	
}


标签: file
共有 人打赏支持
粉丝 10
博文 67
码字总数 113149
×
centrald
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: