ラベル Java の投稿を表示しています。 すべての投稿を表示
ラベル Java の投稿を表示しています。 すべての投稿を表示

2011年11月30日水曜日

( Java )ファイルを複数拡張子フィルタリングし取得する。

時間がとれたので今日は2~3回投稿。
まずはJavaの話題。
ファイルを複数の拡張子でフィルタリングする場合以下のクラスを使う。

public class FileFilter implements FilenameFilter{
    private final String FILTER_KEYWORD = ".jpg";
    private final String FILTER_KEYWORD2 = ".JPG";
   
    public boolean accept(File dir, String name){
        File file = new File(name);
        if(file.isDirectory()){
            return false;
        }
        return(name.endsWith(FILTER_KEYWORD)|| name.endsWith(FILTER_KEYWORD2));
    }
}

んでこれを

String[] imageArray;
File dir;

dir = new File("C:\とか");
imageArray = dir.list(new FileFilter());

のようにして使う。FILTER_KEYWORDの部分を変更したり、あるいは増やせば、さらに別の拡張子を取得したり、拡張子フィルタの種類を増やすことができる。

2011年11月24日木曜日

( Java ) 絶対パスからディレクトリパスのみを取り出す

今日は本当に疲れた。
仕事ではムカつくことばかりだったし...。
現実で「俺を誰だと思ってるんだっ!」なんて初めて聞いたよ。
とりあえず怒鳴るなっての。すんげー偉い人間だっていうなら権力使ってサッサと俺をクビにすればいいだろ?めんどくせぇ。怒鳴ろうがあんたへの信頼はなおらねぇっての! ...

はい。さて、今日はJavaで、C#のようにパスからディレクトリパスのみを取り出す関数が用意されていないようなのでそれをメモしておく。

private String getDirectoryName(String absolutepath)
{
    File file = new File(absolutepath);
    int index = file.getAbsolutePath().lastIndexOf("\\");
    String dirName = "";
    if(index > 0 && index <= file.getAbsolutePath().length() - 1)
    {
        dirName = file.getAbsolutePath().substring(0, index);
    }
    return dirName;
}

この関数を正常に使用するためには引数となる絶対パスをあらかじめチェックするか、
あるいはこの関数内でチェックする必要がある。

2011年11月22日火曜日

( Java ) フォルダダイアログとファイル名フィルタについて

    フォルダ選択ダイアログを表示し、ファイル名フィルタをかけるというもの
ここではテキストファイルのみをフィルタリングしている。ダイアログ関係で
結構頻繁に使うのでメモ。
http://www.syboos.jp/java/doc/listfiles-by-filefilter.htmlを参考)

private void folderOpenDialog(ActionEvent arg0)
{
    JFileChooser fldlg = new JFileChooser();
    fldlg.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
    if(fldlg.showOpenDialog(this) == JFileChooser.APPROVE_OPTION)
    {
        File fl = fldlg.getSelectedFile();
        File[] txtFiles = fl.listFiles(getFileExtensionFilter(".txt"));

        table.setValueAt(txtFiles[0], 0, 0);//テーブルにセットしてみる。
   }       
}

private FilenameFilter getFileExtensionFilter(String extension)
{ 
    final String _extension = extension; 
    return new FilenameFilter()
    { 
        public boolean accept(File file, String name)
        { 
            boolean ret = name.endsWith(_extension);  
            return ret; 
        } 
    }; 
}  

Javaは最近Eclipseをインストールしたので触っているのだが、なかなかわかりやすく、
使いやすい。日本語のサイトも豊富なので勉強はさくさく進みそうな感じがする。