필터링 해야할 일이 생겨서 해봤습니다.
File클래스에는 list()메소드가 2개가 있습니다.
하나는 해당 디렉토리에서 모든 파일 리스트를 리턴하는 메소드입니다.
다른 하나는 필터링을 할 수 있게 FilenameFilter를 파라메터로 받는 list메소드가 있습니다.
두번째 것을 이용해서 원하는 파일을 필터링 할 수 있습니다.
FilenameFilter는 Interface입니다. 그래서 accept메소드를 구현하면 됩니다. 이 메소드에서 true값을 가지게 하는 값만이 String[]으로 반환이 됩니다.
[code]
import java.io.File;
import java.io.FilenameFilter;
public class FileFilterTest {
public static void main(String[] args)
{
File file = new File("D:/");
String[] list = file.list(new FilenameFilter()
{
@Override
public boolean accept(File dir, String name)
{
return name.endsWith(".mp3");
}
});
for (int i = 0; i < list.length; i++)
{
System.out.println(list[i]);
}
}
}
[/code]
[code]
01. War.mp3
01_Be.mp3
01 ) 나를 보낸다.mp3
더 크로스 3집 ['07 The Cross]- 01 Love Song.mp3
[/code]
음.....잘되는군요. 저 accept함수를 잘만 구현하면 원하는 형태로 구현할 수 있는 것 같습니다.
File클래스에는 list()메소드가 2개가 있습니다.
하나는 해당 디렉토리에서 모든 파일 리스트를 리턴하는 메소드입니다.
다른 하나는 필터링을 할 수 있게 FilenameFilter를 파라메터로 받는 list메소드가 있습니다.
두번째 것을 이용해서 원하는 파일을 필터링 할 수 있습니다.
FilenameFilter는 Interface입니다. 그래서 accept메소드를 구현하면 됩니다. 이 메소드에서 true값을 가지게 하는 값만이 String[]으로 반환이 됩니다.
[code]
import java.io.File;
import java.io.FilenameFilter;
public class FileFilterTest {
public static void main(String[] args)
{
File file = new File("D:/");
String[] list = file.list(new FilenameFilter()
{
@Override
public boolean accept(File dir, String name)
{
return name.endsWith(".mp3");
}
});
for (int i = 0; i < list.length; i++)
{
System.out.println(list[i]);
}
}
}
[/code]
[code]
01. War.mp3
01_Be.mp3
01 ) 나를 보낸다.mp3
더 크로스 3집 ['07 The Cross]- 01 Love Song.mp3
[/code]
음.....잘되는군요. 저 accept함수를 잘만 구현하면 원하는 형태로 구현할 수 있는 것 같습니다.