java File基本操作

笔记:java File基本操作

/**
     * 创建一个文件,目录或多级目录
     * @param path
     * @throws IOException
     * @see [类、类#方法、类#成员]
     */
    public static void createFile(String path) throws IOException
    {
        if(path == null){
            return ;
        }
        File file = new File(path);
        if(path == null){
            return ;
        }
        File f = new File(path);
        File fileParent = f.getParentFile();
        if(!fileParent.exists()){
            fileParent.mkdirs();
         }
        if(!f.exists()){
            f.createNewFile();
        }
//      if(!file.exists()){
//      file.createNewFile();
//      /*//创建一个目录,其路径中的父目录都必须存在(D://test)
//      if(!file.isDirectory()){
//          file.mkdir();
//      }
//      //创建一个多级目录,其路径中的父目录可以不存在存在(D://test//test//test)
//      if(!file.isDirectory()){
//          file.mkdirs();
//      }*/
//      //只允许所有人使用可读
//      file.setReadable(true);
//      //只允许所有人使用可写
//      file.setWritable(true);
//     /* //只允许文件所有者使用可写
//      file.setWritable(true, true);
//      //只允许文件所有者使用可读
//      file.setReadable(true, true);*/
//  }
    }
    
    /**
     * 查看该文件的基本信息
     * @param path
     * @throws IOException
     * @see [类、类#方法、类#成员]
     */
    public static void getFileInfo(String path) throws IOException
    {
        File file = new File(path);
        //文件的路径
        String filePath = file.getPath();
        //文件的名称
        String fileName = file.getName();
        //文件父路径
        String  fileParentName = file.getParent();
        //文件的绝对路径
        String fileAbsolutePath = file.getAbsolutePath();
        //文件的绝对路径
        String fileCanonicalPath = file.getCanonicalPath();
        //父目录的文件对象
        File fileParentFile = file.getParentFile();
        //父目录的文件对象
        File fileAbsoluteFile = file.getAbsoluteFile();
        //父目录的文件对象
        File fileCanonicalFile = file.getCanonicalFile();
        //文件的可使用的空间
        long fileFreeSpace = file.getFreeSpace();
        //文件的总共的空间
        long fileTotalSpace = file.getTotalSpace();
        //文件的未使用的空间
        long fileUsableSpace = file.getUsableSpace();
        
        System.out.println("filePath:"+filePath);
        System.out.println("fileName:"+fileName);
        System.out.println("fileParentName:"+fileParentName);
        System.out.println("fileAbsolutePath:"+fileAbsolutePath);
        System.out.println("fileCanonicalPath:"+fileCanonicalPath);
        System.out.println("fileParentFile:"+fileParentFile);
        System.out.println("fileAbsoluteFile:"+fileAbsoluteFile);
        System.out.println("fileCanonicalFile:"+fileCanonicalFile);
        System.out.println("fileFreeSpace:"+fileFreeSpace);
        System.out.println("fileTotalSpace:"+fileTotalSpace);
        System.out.println("fileUsableSpace:"+fileUsableSpace);
        
        
        /*
                      结果集:
        filePath:D:\powerd\core.chm
        fileName:core.chm
        fileParentName:D:\powerd
        fileAbsolutePath:D:\powerd\core.chm
        fileCanonicalPath:D:\powerd\core.chm
        fileParentFile:D:\powerd
        fileAbsoluteFile:D:\powerd\core.chm
        fileCanonicalFile:D:\powerd\core.chm
        fileFreeSpace:95729790976
        fileTotalSpace:158986403840
        fileUsableSpace:95729790976
        */

    }
    
    /**
     * 删除文件夹(先删除文件下的文件在,删除目录)
     * @param args
     * @see [类、类#方法、类#成员]
     */
    public static void deleteFile(String path)
    {
        File file = new File(path);
        if(file.exists()){
            if(file.isFile()){
                System.out.println(file.getName()+"文件是否是隐藏的:"+file.isHidden());
                file.delete();
               /* //其中检查文件路径是否合法。不合法时,返回false。合法,删除文件,返回true
                file.deleteOnExit();*/
            }else if(file.isDirectory()){
                File[] files =  file.listFiles();
                for(File f:files){
                   deleteFile(f.getAbsolutePath());
                }
            }
        }
        file.delete();
    }
    
    /**
     * 重命名
     * @param oldPath
     * @param newPath
     * @see [类、类#方法、类#成员]
     */
    public static void rename(String oldPath,String newPath)
    {
        File oldFile = new File(oldPath);
        File newFile = new File(newPath);
        if(oldFile.exists() && !newFile.exists()){
            if(!newFile.exists()){  
                new File(newFile.getParent()).mkdirs();  
            }
            oldFile.renameTo(newFile);
        }
    }
    
    /**
     * 复制文件
     * @param oldPath
     * @param newPath
     * @throws IOException 
     * @see [类、类#方法、类#成员]
     */
    public static void copyFlie(String oldPath,String newPath) throws IOException
    {
        File oldFile=new File(oldPath);  
        newPath +="\\"+oldFile.getName();  
        File newFile=new File(newPath);  
        if(!newFile.exists()){  
            newFile.mkdirs();  
        }  
        System.out.println(newFile);  
        File[] file=oldFile.listFiles();  
        for (File f : file) {  
            if(f.isFile()){  
                String path2=newPath+"\\"+f.getName();  
                createFile(path2);  
            }else if(f.isDirectory()){  
                String s=f.getPath();  
                copyFlie(s,newPath);  
            }  
        }  
    }
    
    /**
     * 是否有文件的权限 
     * @param path
     * @see [类、类#方法、类#成员]
     */
    public static void isAutho(String path)
    {
        File f=new File(path); 
        if(!f.canExecute()){
            f.setExecutable(true);
        }
        if(!f.canRead()){
            f.setReadable(true);
        }
        if(!f.canWrite()){
            f.setWritable(true);
        }

 /**
     * 重命名,去除文件名结尾的后缀
     * @param oldPath
     * @param newPath
     * @see [类、类#方法、类#成员]
     */
    public static void renameDir(String path,String suffix)
    {
        File file = new File(path);
        if(file.exists()){
            if(file.isFile()){
                if(file.getName().endsWith(suffix)){
                    String paths = file.getAbsolutePath();
                    String rePath =paths.substring(0, paths.length()-suffix.length());
                    rename(paths,rePath);
                }
            }else if(file.isDirectory()){
                File[] files =  file.listFiles();
                for(File f:files){
                    renameDir(f.getAbsolutePath(),suffix);
                }
            }
        }

 }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值