文件搜索小工具

package o.o.utils;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;

/*
 * author:Micky
 * version:1.0.0
 * Date:2017年8月18日 下午11:46:15
 */
public class FileUtils {

	/*
	 * @parameter 指定路径filePath,指定文件名 fileName
	 * 
	 * @return 匹配文件的具体文件路径的列表
	 */
	public List
   
   
    
     containFileName(String filePath, String fileName) {
		List
    
    
     
      filePathList = new ArrayList
     
     
      
      ();
		File dir = new File(filePath);
		List
      
      
       
        files = new ArrayList
       
       
         (); if (dir.isDirectory()) { files = getterAllFiles(dir); files.stream().filter(f -> f.getName().contains(fileName)) .forEach(f -> filePathList.add(f.getAbsolutePath())); } else if (dir.isFile() && dir.getName().contains(fileName)) { filePathList.add(dir.getAbsolutePath()); } return filePathList; } /* * 递归得到指定路径下的所有文件 */ public List 
        
          getterAllFiles(File dir) { List 
         
           files = new ArrayList 
          
            (); List 
           
             childfiles = Arrays.asList(dir.listFiles()); childfiles.stream().forEach(f -> { if (f.isDirectory()) { files.addAll(getterAllFiles(f)); } else { files.add(f); } }); return files; } /* * @parameter 指定路径filePath,指定字符串specialString * * @return 包含特殊字段的文件的具体文件路径的列表 */ public List 
            
              containSpecialString(String filePath, String specialString) { List 
             
               filePathList = new ArrayList 
              
                (); File dir = new File(filePath); List 
               
                 files = new ArrayList 
                
                  (); if (dir.isDirectory()) { files = getterAllFiles(dir); files.stream().filter(f -> isContainSpecialStr(f, specialString)) .forEach(f -> filePathList.add(f.getAbsolutePath())); } else if (dir.isFile() && isContainSpecialStr(dir, specialString)) { filePathList.add(dir.getAbsolutePath()); } return filePathList; } public boolean isContainSpecialStr(File file, String str) { String strLine = ""; boolean flag = false; try { BufferedReader bufferedReader = new BufferedReader( new InputStreamReader(new FileInputStream(file))); while ((strLine = bufferedReader.readLine()) != null) { if (strLine.contains(str)) { flag = true; } } if (bufferedReader != null) bufferedReader.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return flag; } /* * @parameter 指定具体文件以及所含特殊字段 * * @return 指定字段所在文件路径及其在文件中的行数以及行具体信息的嵌套map */ public Map 
                 
                   > containSpecialStringReturnMap( String filePath, String specialString) { Map 
                  
                    > filePathMap = new HashMap<>(); File dir = new File(filePath); List 
                   
                     files = new ArrayList 
                    
                      (); if (dir.isDirectory()) { files = getterAllFiles(dir); files.stream() .filter(f -> isContainSpecialStr(f, specialString)) .forEach( f -> filePathMap.put(f.getAbsolutePath(), containSpecialStrInfo(f, specialString))); } else if (dir.isFile() && isContainSpecialStr(dir, specialString)) { filePathMap.put(dir.getAbsolutePath(), containSpecialStrInfo(dir, specialString)); } return filePathMap; } /* * @parameter 指定具体文件以及所含特殊字段 * * @return 指定字段在文件中的行数以及行具体信息的map */ public Map 
                     
                       containSpecialStrInfo(File file, String str) { Map 
                      
                        specialStrInfo = new LinkedHashMap 
                       
                         (); if (file.isDirectory()) { return specialStrInfo; } String strLine = ""; try { BufferedReader bufferedReader = new BufferedReader( new InputStreamReader(new FileInputStream(file))); int row = 1; while ((strLine = bufferedReader.readLine()) != null) { if (strLine.contains(str)) { specialStrInfo.put(row, strLine); } row++; } if (bufferedReader != null) bufferedReader.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return specialStrInfo; } } 
                        
                       
                      
                     
                    
                   
                  
                 
                
               
              
             
            
           
          
         
       
      
      
     
     
    
    
   
   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Win小工具文件批量改名是一种非常方便的工具,使用它可以快速地批量修改文件名。通过该工具,用户可以一次性对多个文件进行命名的修改,无需逐个手动修改。下面我将介绍一下如何使用Win小工具文件批量改名。 首先,我们需要下载并安装该工具。可以在互联网上搜索并找到该工具的官方网站,从中下载安装程序。安装完成后,我们可以在系统的“开始”菜单中找到该工具并打开它。 打开工具后,我们可以看到一个用户友好的界面。在界面的右侧,有一个文件列表框,我们可以将需要修改文件名的文件拖放到这个列表框中。或者,我们也可以点击“添加文件”按钮手动选择需要修改的文件。 在文件列表框中,我们可以看到文件的原始名称。如果需要修改文件名,可以在每个文件的旁边的文本框中输入新名称。 此外,工具还提供了一些高级的重命名选项,例如加上前缀、后缀、替换特定字符等。如果需要使用这些选项,我们可以在工具的界面上选择相应的选项。 在全部文件名修改完成后,我们可以点击“开始”按钮进行批量改名操作。工具会将新的文件名应用到相应的文件上。 使用Win小工具文件批量改名,我们可以快速方便地修改多个文件的名称,节省了大量的时间和工作量。它适用于需要对大量文件进行命名修改的场景,例如相册中的照片、文档库中的文件等。这个工具非常实用,可以在日常工作中提高效率。 ### 回答2: Win小工具文件批量改名是一种功能强大的文件管理工具,它能够方便地批量修改文件名称。使用此工具,我们可以省去一个个手动修改文件名的繁琐步骤,提高文件管理的效率。 首先,我们需要选择想要修改名称的文件夹,然后运行Win小工具文件批量改名。接着,我们可以通过设置一定的规则来进行文件名的批量修改。例如,我们可以选择在原文件名之前添加固定的字符、在文件名末尾添加日期、删除文件名中的特定字符等。 此外,Win小工具文件批量改名还支持对文件名进行查找和替换,我们可以输入要查找的文字和要替换的文字,然后一键将全部包含这些文字的文件名进行替换,非常方便快捷。 使用此工具还可以进行文件名的排序和编号。我们可以选择按照名称、创建日期、修改日期等方式对文件进行排序,也可以添加编号并选择编号的起始值和步长。 值得一提的是,Win小工具文件批量改名还提供了实时预览功能,我们可以在修改文件名之前先预览修改后的效果,确保修改的结果符合我们的要求。 总的来说,Win小工具文件批量改名是一款非常实用的文件管理工具,通过它我们可以方便快捷地对大量文件进行统一的命名规则设定和修改,大大提高了文件管理的效率和准确性。无论是批量修改文件名、查找替换文字还是进行文件排序和编号,该工具都能帮助我们轻松完成。 ### 回答3: Win小工具是一款在Windows操作系统上运行的实用程序,它提供了许多便利的功能来简化日常任务。其中一个功能就是批量改名文件。 当我们需要对许多文件进行命名更改时,手动逐个改名将非常繁琐和耗时。但是,借助Win小工具,我们可以快速地批量改名文件。 首先,我们需要打开Win小工具的界面。在界面上,我们可以看到一个菜单选项或者按钮,其中应该有一个选项叫做“批量改名”或者类似的字样。选择这个选项会打开一个新的窗口或者对话框。 在这个新窗口中,我们可以看到一些选项和设置,用于指定要改名的文件夹以及改名的规则。例如,我们可以选择要改名的文件夹路径,并设置要添加的前缀或后缀,也可以移除特定的字符或替换某些字符。 当我们完成这些设置后,点击确认或者应用按钮,Win小工具就会开始批量改名文件。它会根据我们的设置,逐个遍历文件夹中的文件,并按照指定的规则进行改名。 改名过程通常很快,特别是对于大量文件的情况。当改名完成后,我们可以在Win小工具中看到改名后的文件名列表,以便确认是否达到了预期的效果。 总的来说,Win小工具的批量改名功能使得我们能够快速、方便地修改多个文件文件名,节省了大量的时间和劳动力。它是一款非常实用的工具,适用于各种文件重命名的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值