0

私はJavaのニブルです。私は物事を成し遂げるために私自身の努力をしています。しかし、確かに私は挑戦に直面しています。コマンドライン引数として指定された特定の拡張子 (.txt) のファイルを検索するダミー プログラムがあります。さらに操作するために、これらの検索されたファイルのファイル オブジェクトを作成しようとしています。しかし、私のコードでこれを行う方法を理解できません..これが私のコードサンプルです...

public class Find {

public static class Finder extends SimpleFileVisitor<Path> {

    private final PathMatcher matcher;
    private int numMatches = 0;

    Finder(String pattern) {
        matcher = FileSystems.getDefault().getPathMatcher("glob:" + pattern);
    }

     void find(Path file) {
        Path name = file.getFileName();
        if (name != null && matcher.matches(name)) {
            numMatches++;
            System.out.println(file);
        }
    }

    // Prints the total number of
    // matches to standard out.
    void done() {
        System.out.println("Matched: "+ numMatches);
    }

    // Invoke the pattern matching
    // method on each file.
    //@Override
    public FileVisitResult visitFile(Path file,
            BasicFileAttributes attrs) {
        find(file);
        return CONTINUE;
    }

    // Invoke the pattern matching
    // method on each directory.
    //@Override
    public FileVisitResult preVisitDirectory(Path dir,
            BasicFileAttributes attrs) {
        find(dir);
        return CONTINUE;
    }

    //@Override
    public FileVisitResult visitFileFailed(Path file, IOException exc) {
        System.err.println(exc);
        return CONTINUE;
    }
}


public static void main(String[] args) throws IOException {

    Iterable<Path> root;
    root = FileSystems.getDefault().getRootDirectories();
   // System.out.println(name.getAbsolutePath());
    for (Path startingDir : FileSystems.getDefault().getRootDirectories()) {
       String pattern = args[0];

        Finder finder = new Finder(pattern);
        Files.walkFileTree(startingDir, finder);

    }
}

}

4

1 に答える 1