`
摇梦江畔
  • 浏览: 9018 次
  • 性别: Icon_minigender_2
  • 来自: 朝阳
文章分类
社区版块
存档分类
最新评论

文件的用法

 
阅读更多

一、文件用法

      [1]File类位于Java.io包中,可以通过File对象的方法创建文件对象、删除文件、列表目录下的文件,判断文件是目录还是正是文件,文件系统的基本规则是:

          1、文件全名包含文件路径名和扩展名,单独讲一个文件名字时,是不带路径但带扩展名的文件名。

          2、同一目录下不可能存在同名的目录和真实文件,系统主要有目录型文件和真是文件两种,真实文件可以没有扩展名,另还有不需计算的虚拟内存文件;

          3、相对路径指不以文件分割符开头的文件路径,绝对路径是以根目录开头的路径,当前目录是指相对于程序运行时的目录算起的相对路径。

          4、liunx上,目录分隔符为/  路径分隔符为:

              在windows 上,目录分隔符为\ 路径分隔符为;

 

      [2]File类属性

          public static String pathSeparator:表示当前操作系统的路径分隔符

          public static String separator:表示当前操作系统的名字分隔符

      [3]File类构造器

          File(File parent,String child)  在父文件目录下创建名为child的子文件对象

          File(String pathname)           创建指向pathname名字下的文件对象

          File(String parent,String child)以parent字符串为父录名,创建一个指向pathname的File对象

      [4]重要方法

          boolean exists(); 判断文件是否存在

          String getName();得到文件名字(不带路径)

          boolean isDirectory();判断File对象指向的文件是否为目录

          boolean isFile();判断File对象指向的文件是否为真实文件

          boolean mkdir();根据对象路径创建目录(仅可创建一级目录,且不能重名)

          boolean mkdirs();根据对象路径创建多级目录

          long length();得到File对象指向的文件长度

          boolean delete();从磁盘上删除File对象指定的文件

 

package File;
/**
 * 统计文件个数方法
 * @author Administrator
 *
 */
import java.io.File;
public class StatisticFile {

	public static void main(String []args){
    	StatisticFile sf = new StatisticFile();
    	String path = "E:\\java\\draw";
    	int num = sf.statistic( path);
    	System.out.println("该目录下的文件个数共"+num);
    	long space = sf.space(path);
    	System.out.println("该目录下的文件大小为"+space);
    }
    /**
     * 统计指定路径下的标准文件个数
     * @param path 给定路径
     * @return 给定路径下的文件个数
     */
	
    public int statistic(String path){
    	 int count = 0;
    	 //根据给定路径创造文件对象
    	 File file = new File(path);
    	 
    	 //判断该路径是否存在
    	 if(!file.exists()){
    		 System.out.println("此文件路径不存在");
    		 return 0;
    	 }
    	 
    	 //如果存在,装入数组中,并判断是目录还是文件
    	 File[] fl = file.listFiles();
    	 
    	 if(fl == null){
    	     System.out.println("给定路径非目录!");
    	     return 0;
    	    		 
    	 }
    	 //遍历数组,输出文件地址
    	 for(int i=0;i<fl.length;i++){
    		 //根据已知路径获取文件
    		 File f = fl[i];
    		 
    		 //得到文件路径
    		 String str = f.getAbsolutePath();
    		 //如果找到的是一个标准文件
    		 if(f.isFile()){
    			 System.out.println("找到一个文件"+str);
    			 count++;
    		 }else if(f.isDirectory()){
    			 //如果找到的是一个目录
    			 
    			 //递归调用
    			 count+=statistic(str);
    		 }
    	 }
    	 return count;
    }
    /**
     * 统计指定目录下标准文件的总空间    
     * @param path 指定目录
     * @return 文件的总空间
     */
    public long space(String path){
        	long sp = 0;
        	//根据已知目录创造文件对象
        	File fl = new File(path);
        	
        	//判断该路径是否存在
        	if(!fl.exists()){
        	    System.out.println("该路径不存在!");
        	    return 0;
        	}
        	//如果存在,装入数组中
        	File [] f = fl.listFiles();
        	//判断给定路径是目录还是文件
        	if(f==null){
        		System.out.println("给定路径不是目录!");
        		return 0;
        	}
        	//存在,遍历文件
        	for(int i=0;i<f.length;i++){
        		//创建文件对象
        		File file = f[i];
        		 //获取文件的路径
    		    String str = file.getAbsolutePath();
        		if(file.isFile()){
        		    //获取对象的大小
        		    long lo = file.length();
        		    System.out.println("文件"+str+"的大小是"+lo);
        		    sp+=lo;
        		}else if(file.isDirectory()){
        			//递归调用
        			sp+=space(str);
        		}
        		
        	}
        	
        	
        	return sp;
        }
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics