Mubasshir Farooque Ответов: 2

Я хочу найти несколько файлов из пакета примерно из 2000 файлов и скопировать искомый файл в новое место.


У меня есть zip-файл, в котором есть около 2000 файлов (в формате Zip и PDF), я хочу найти файлы, которые начинаются с "0", " 1 " или "2", и скопировать эти файлы в новое место.

Что я уже пробовал:

Я попробовал приведенный ниже код, но этот код выполняет только поиск файлов, начинающихся с "0", а также не копирует эти файлы в новое место.

import java.io.*;
import java.util.*;
import java.lang.*;

public class Main { 
   public static void main(String[] args) {
      File dir = new File("E:\\abc");
      FilenameFilter filter = new FilenameFilter() {
         public boolean accept (File dir, String name) { 
            return name.startsWith("0");
         } 
      }; 
      String[] children = dir.list(filter);
      if (children == null) {
         System.out.println("Either dir does not exist or is not a directory"); 
      } else { 
         for (int i = 0; i< children.length; i++) {
            String filename = children[i];
            System.out.println(filename);
         } 
      } 
   } 
}

2 Ответов

Рейтинг:
12

JudyL_MD

Вы говорите, что хотите использовать файлы, начинающиеся с "0", "1" или "2", но вы принимаете только файлы, начинающиеся с "0". Код делает именно то, что вы ему сказали.

public boolean accept (File dir, String name) { 
            return name.startsWith("0");
         }

Вам нужно изменить свой принимать код для обработки всех трех случаев
<pre>public boolean accept (File dir, String name) { 
            return name.startsWith("0") || name.startsWith("1") || name.startsWith("2");
         }


Что касается копирования, попробуйте java.nio.file.Файлов.копия функция.


Рейтинг:
0

RickZeeland

Вам нужно Переопределение accept(), см.: java - использование FilenameFilter - переполнение стека[^]

Вы можете использовать функцию Files.copy() для копирования файлов, см.: Как скопировать файл с помощью Java | Baeldung[^]


Mubasshir Farooque

Не могли бы вы помочь мне с правильным кодом, так как я не очень хорошо с ним знаком.

RickZeeland

И я тоже, так как я не Java, а программист C# :)
Может быть, на помощь придет настоящий Java-разработчик ...