특정 폴더에 대해서 그 하위 폴더까지 확장자가 .shp 인 파일 목록을 얻어는 함수입니다. 확장자의 지정은 함수 내부에 마법의 상수값으로 박혀 있습니다.
private void GetShpFileNames(string folderName, ArrayList fileNamesList) { System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(folderName); foreach (System.IO.FileInfo f in di.GetFiles()) { if (f.Extension.ToLower().CompareTo(".shp") == 0) { String strInFileName = di.FullName + "\\" + f.Name; fileNamesList.Add(strInFileName); } } foreach (System.IO.DirectoryInfo sd in di.GetDirectories()) { GetShpFileNames(sd.FullName, fileNamesList); } }
최근에 C# 5.0에 대한 책을 3일에 걸쳐 대충 설렁 설렁 봤더랬습니다. 비록 위의 코드는 C#의 고전 문법만 존재하지만.. 여하튼, 클라이언트 단의 개발 언어로써 C#은 정말 단연 최고가 아닌가 할 정도였습니다. 자바스크립트의 비슷한 개념도 가져오고, 특히나 클래스 타입 자체를 동적으로 생성하는 기능에서는 ‘미친거아냐?’라는 생각마저 들었습니다. 마치 프로그램이 프로그램을 만들 수 있다라는 개념도 가능하다는 것이죠. 이런 미친…. -_-;