Directory.GetFiles

예전에 도스에서 파일명의 형태는 8.3이었다.
파일명 길이8 확장자 길이3, 최대길이로.. 그리고 띄어쓰기도 들어가면 안된다..
이 파일명 형태를 지금의 윈도우에서도 쓸수 있는데 명령창에서 dir /x 라고 치면 확인할수 있고
거기에 나오는 이름으로 파일명을 적을수 있다..

그런데 이게 문제가 된것이..
DirectMove의 테스트를 위해 한 폴더의 ksf들을 ksfa로 확장자를 바꾸고 한개만 테스트용으로 만들어놨더니
ksfa들이 다 검색에 걸린것이다..
Directory.GetFiles이 함수는 8.3 형태의 파일명도 지원하기 때문에
*.ksf로 검색했을 경우  abcd.ksfa 이 파일들이 abcd~1.ksf 의 형태로 인식되서 검색에 걸린것이다..

쉽게
Directory.GetFiles(path, "*.ksf"); 이런식으로 호출했더니
이 함수가 8.3 형태의 파일명을 지원하면서 검색하게 되었다.
그래서 abcd.ksfa가 abcd~1.ksf로 인식돼서 *.ksf에 적합한 파일명으로 인식되었다.
이런 이야기인데
물론 *.ksf의 검색에 abcd.ksfa가 검색됐으니 정상적인게 아니다..
그래서 이를 처리하려면 별도의 함수를 만들어서 처리해야 된다..-_-;;
귀찮게..

재미없는 함수로 해결

private List<string> GetFiles(string ext)
{
    List<string> files = new List<string>();
    foreach (string file in Directory.GetFiles(path, "*." + ext))
    {
        if (file.ToLower().EndsWith(ext.ToLower()))
        {
            files.Add(file);
        }
    }
    return files;
}

by kiho | 2006/10/15 13:08 | .NET | 트랙백 | 덧글(2)

트랙백 주소 : http://kiho.egloos.com/tb/2632488
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Commented by 마르시즈 at 2006/10/16 00:39 #
아하하하 이런... 재미없는 함수군 아하하하하 재미없는 함수야
Commented by kiho at 2006/10/16 03:33 #
왜이려-_-;;

:         :

:

비공개 덧글

 

◀ 이전 페이지          다음 페이지 ▶