'와일드 카드'에 해당되는 글 1건

  1. 2009.10.24 MultipleSearchPattern 라이브러리. (닷넷) 8


프로젝트 클리너 - v0.2에 사용했던 MultipleSearchPattern을 라이브러리화 시켰습니다.

사용법은 dll, xml 파일을 같은 경로에 두고 프로젝트에서 참조시키면 되고, 모두 정적메소드로 만들었기 때문에 객체 생성없이 바로 사용하면 됩니다.

닷넷의 기본 DirectoryInfo.GetFiles(), DirectoryInfo.GetDirectories() 메소드의 searchPattern은 단일 조건밖에 되지 않는데 이것을 개선해서 여러 조건을 사용가능하게 해줍니다.

기본적인 사용법은 MS의 GetFiles(), GetDirectories() 메소드에 매개변수를 약간 변형시켰습니다.


일단 두 메소드 모두 첫번째 매개변수는 결과를 받을 배열로서 out 키워드를 이용해서 넘겨주면 메소드 실행 후 결과를 받을 수 있습니다. 기본적으로 string배열로 결과를 받을 수 있고, 각 메소드에 맞게 DirectoryInfo, FileInfo 배열로 결과를 받을 수 있습니다.

두번째 매개변수는 검색을 할 경로를 지정합니다. 단순히 하나의 경로에 대해서 처리할 때는 string형에 경로를 저장해서 넘겨주면 되고 복수의 경로에 대해서는 string배열로 넘겨주면 됩니다.

세번째, 네번째 매개변수는 searchPattern과 관련된 것으로 기본 문법은 MS의 메소드와 같지만 복수개의 조건을 지정하고 싶으면 char형의 구분자를 통해서 여러개의 조건을 지정할 수 있고 이떄 사용된 구분자는 네번째 매개변수로 넘겨줍니다.
(searchPattern의 자세한 내용은 http://msdn.microsoft.com/ko-kr/library/8he88b63.aspx 를 참고하세요.)

마지막으로 SearchOption은 검색경로에 대해서 하위 경로 포함여부를 정하는 것으로 MS 메소드에 사용하는 SearchOption을 그대로 사용합니다.

실제 사용 예는 아래와 같고 ';'을 구분자로 사용한 예입니다.

FileInfo[] result = null;
string path = @"C:\";
string multipleSearchPattern = "*.jpg;*.bmp;*.png";

MultipleSearchPattern.GetFiles(out result, path, multipleSearchPattern, ';', SearchOption.AllDirectories);
(사용언어 / 제작툴 / .Net Framework버전 : C# / VS2008 / 2.0)

Posted by Gungume
,