zoukankan      html  css  js  c++  java
  • File类中常用的方法以及搜索路径下的包含指定词的文件

    File类是对文件系统中的文件和文件夹进行封装的对象

    绝对路径:带有前缀字符串(盘符)  Windows :d:\     Linux :/ (推荐使用后者)
    相对路径:不带盘符 ./test/test1.txt      当前路径 "."    父路径 ".."    

    File类的构造函数
    1.   File (String pathname)
    例:File f1=new File("FileTest1.txt"); //创建文件对象f1,f1所指的文件是在当前目录下创建的FileTest1.txt
    2.   File (String parent , String child)
    例:File f2=new File(“D:dir1","FileTest2.txt") ;// 注意:D:dir1目录事先必须存在,否则异常
    3.   File (File parent , String child)
    例:File f4=new File("dir3");
    File f5=new File(f4,"FileTest5.txt"); //在如果 dir3目录不存在使用f4.mkdir()先创建

    常见的方法:

    public boolean exists( ) 判断文件或目录是否存在
    public boolean isFile( ) 判断是文件还是目录
    public boolean isDirectory( ) 判断是文件还是目录
    public String getName( ) 返回文件名或目录名
    public String getPath( ) 返回文件或目录的路径。
    public long length( ) 获取文件的长度
    public String[ ] list ( ) 将目录中所有文件名保存在字符串数组中返回。
    File类中还定义了一些对文件或目录进行管理、操作的方法,常用的方法有:
    public boolean renameTo( File newFile ); 重命名文件
    public void delete( ); 删除文件
    public boolean mkdir( ); 创建目录
    String getAbsolutePath() 获取文件的磁盘绝对地址
    File[] listFiles(FilenameFilter filter) 列取文件夹下的文件列表有过滤器有文件名过滤器file必须是文件夹才能使用
    File[] listRoots() 列出可用的文件系统根

    例子:(完成搜索功能)

    要求:
     1、指定起始路径下包含指定词的所有文件(非隐藏文件)
     2、打印出全路径

          用递归的想法来从文件开始遍历,找到包含关键词的全部路径。(目录结构如下:查找包含“Java”的文件)

    import java.io.File;
    import java.io.FilenameFilter;
    
    public class IOFile03 {
        public static void main(String[] args) {
            String path = "D:/tmp";
            String filter = "Java";
            searchFile(path,filter);
        }
        /**
         * @param path   指定路径
         * @param filter  过滤关键词
         */
        public static void searchFile(String path,String filter){
            File file = new File(path);
            if(file == null || !file.exists()){
                return;
            }else if(file.isDirectory()){  //是个目录
                FilenameFilter filenameFilter = new FilenameFilter() {   //过滤器
                    @Override
                    public boolean accept(File dir, String name) {
                        File file1 = new File(dir,name);  //创建该实例
                        if(file1.getName().contains(filter))
                            System.out.println(file1.getPath());
                            return false;
                    }
                };
                file.list(filenameFilter);
                for (File src: file.listFiles()
                     ) {
                    searchFile(src.getPath(),filter);  //递归的向下查找
                }
            }
    
        }
    }

  • 相关阅读:
    mongoGridFS
    ModelClientValidationRule同时存在多个位置解决方案
    C# 使用 SocketAsyncEventArgs 实现UdpSocket系列
    如何把握机会
    c#异步socket
    服务器×××上的MSDTC不可用解决办法
    分享.net常见的内存泄露及解决方法
    如何处理几十万条并发数据
    iphone开发,模拟器生成文件路径
    Iphone隐藏和显示TabBar的方法
  • 原文地址:https://www.cnblogs.com/128-cdy/p/12337396.html
Copyright © 2011-2022 走看看