0

以下のコードを拡張して一致させるだけでなく、 "e"文字を含むすべてのファイルとディレクトリを削除する方法があるのだろうか彼らの名前で。どんな助けもありがとう!Javaを使用してファイル名の特定の文字に基づいてすべてのファイルを削除する方法

ありがとうございます。 )あなたはこのFileUtils.deleteQuitely(としてのファイル/ディレクトリを削除するようにApache Commonsのライブラリorg.apache.commons.io.FileUtilsを使用することができ

import java.io.*; 
import java.nio.file.*; 
import java.nio.file.attribute.BasicFileAttributes; 

class Finder extends SimpleFileVisitor<Path> { 
    private final PathMatcher matcher; 
    Finder() { 
     matcher = FileSystems.getDefault().getPathMatcher("glob:*e*"); 
    } 

    //@Override 
    public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) { 
     find(file); 
     return FileVisitResult.CONTINUE; 
    } 

    //@Override 
    public FileVisitResult preVisitDirectory(Path file, BasicFileAttributes attrs) { 
     find(file); 
     return FileVisitResult.CONTINUE; 
    } 

    void find(Path file) { 
     Path name = file.getFileName(); 
     if(matcher.matches(name)) { 
      System.out.println("Matched file: " + file.getFileName()); 
     } 
    } 
} 

public class FileVisitor2 { 
    public static void main(String[] args) throws IOException { 
     Finder finder = new Finder(); 
     Path p = Paths.get("C:\\Users\\El\\School\\DirMain"); 
     Files.walkFileTree(p, finder); 
    } 
} 
+0

どのように文字列としてファイル名を取得し、使用し、 ''キーワードが含まれているファイルを検出するために、(文字列キーワード)を含み、文字列リストでそれらを保つ程度とすぐにリストを削除しますか? –

+0

ディレクトリ名が条件に一致する場合の対処方法。再帰的に削除する必要がありますか? – SubOptimal

+0

@SubOptimalディレクトリまたはファイル名が条件に一致する場合、名前に "e"が含まれているため、削除または削除する必要があります。 –

答えて

0

などの非空dirsにを削除することができます:ここで

コードですよく

FileUtils.deleteQuietly(new File(path.toUri())); 

以下のようなもの:

void find(Path file) { 
    Path name = file.getFileName(); 
    if(matcher.matches(name)) { 
     System.out.println("Matched file: " + file.getFileName()); 
     FileUtils.deleteQuietly(new File(file.toUri())); 
    } 
} 
関連する問題