JavaFile基本操作

Posted listener_lei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaFile基本操作相关的知识,希望对你有一定的参考价值。

/** 
     * 创建一个文件,目录或多级目录 
     * @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:powerdcore.chm 
        fileName:core.chm 
        fileParentName:D:powerd 
        fileAbsolutePath:D:powerdcore.chm 
        fileCanonicalPath:D:powerdcore.chm 
        fileParentFile:D:powerd 
        fileAbsoluteFile:D:powerdcore.chm 
        fileCanonicalFile:D:powerdcore.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);  
                }  
            }  
        }  
  
 }  

 

以上是关于JavaFile基本操作的主要内容,如果未能解决你的问题,请参考以下文章

JavaFile

JavaFile.createTempFile创建临时文件

Java File类方法使用详解

javaFile的使用:将字符串写出到本地文件,大小0kb的原因

VSCode自定义代码片段——git命令操作一个完整流程

VSCode自定义代码片段15——git命令操作一个完整流程