Archive for 6 月 19th, 2009

JDK 7 ならこう?

金曜日, 6 月 19th, 2009

ちょっと勉強になるブログを発見した。

http://d.hatena.ne.jp/bleis-tift/20090616/1245134308

http://d.hatena.ne.jp/shin/20090618/p2

ついでに以前試した JDK 7 の walkFileTree を使ったチュートリアルをもとにゴニョゴニョしてみた。

特定ディレクトリ以下の列挙 ということなので見栄えは良くないが JDK 7 ならこんなのもありかな?

import java.io.IOException;
import java.nio.file.FileRef;
import java.nio.file.FileSystems;
import java.nio.file.FileVisitOption;
import java.nio.file.FileVisitResult;
import java.nio.file.FileVisitor;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.PathMatcher;
import java.nio.file.Paths;
import java.nio.file.attribute.BasicFileAttributes;
import java.util.EnumSet;

public class Find {

    public static class Finder implements FileVisitor {

        private final PathMatcher matcher;

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

        void find(Path file) {
            if (matcher.matches(file.getName())) {
                System.out.format("%s%n", file);
            }
        }

        @Override
        public FileVisitResult preVisitDirectory(FileRef dir) {
            return FileVisitResult.CONTINUE;
        }

        @Override
        public FileVisitResult preVisitDirectoryFailed(FileRef dir, IOException exc) {
            return FileVisitResult.CONTINUE;
        }

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

        @Override
        public FileVisitResult visitFileFailed(FileRef file, IOException exc) {
            return FileVisitResult.CONTINUE;
        }

        @Override
        public FileVisitResult postVisitDirectory(FileRef dir, IOException exc) {
            return FileVisitResult.CONTINUE;
        }
    }

    public static void main(String[] args) {
        Path searchDir = Paths.get("C:\\ターゲットディレクトリ");
        String pattern = "*";
        EnumSet<FileVisitOption> opts = EnumSet.of(FileVisitOption.FOLLOW_LINKS);
        Finder finder = new Finder(pattern);
        Files.walkFileTree(searchDir, opts, Integer.MAX_VALUE, finder);

    }
}

基本的に間違っていたらごめんさない。

素人のやることだから笑ってゆるしてね(^^;

追記 List<String> result に格納するのがポイントだったのかな?

Hatena タグ:

オプション設定のインポート機能を使ってみる

金曜日, 6 月 19th, 2009

NetBeans 6.7 RC3 をインストールした。

今回初めてオプション設定のインポート機能を使ってみた。

まず RC2 のオプション設定をエクスポートする。

1

エクスポートしたい項目を選択します。

とりあえず「すべて」を選んでみました。

2

ちゃんと zip ファイルで保存されました。(jar ファイルじゃないんですね)

3

これで RC2 にはお暇をやって綺麗さっぱりアンインストールします。

RC3 をインストールしてオプション設定をインポートします。

4 

インポートする項目も選べるんですね。便利!便利!

5

[ 了解 ] ボタンを押してインポートします。

確認ダイアログ画面が出ますので問題なければ [ はい ] ボタンを押したら OK です。

この確認画面の表示がちょっとおかしいですけど画面を大きくリサイズしたらちゃんと読めます。

もう一度小さくリサイズしたら表示が良いときと悪いときがあるようです。

オプション設定のインポートには問題ないようなので気にしない。

追記 この不具合はルックアンドフィールを Nimbus か CDE/Motif に変更した場合に出るようです。

6

 

CDE/Motif

7

このオプション設定のインポート機能って便利ですね。

エクスポートした設定ファイル一つあればすべての環境の NetBeans に同一の設定を簡単にできるってことですね。

Hatena タグ: