2008년 05월 30일
몇일전 떠오른 아이디어.
3D 프로그래밍을 하면서 이런저런 렌더링 테스트를 하게 되는데,
처음 테스트 할때는 가벼운 마음으로 파일은 프로젝트 루트 폴더에 두고 코드는
char* FileName = "smile.bmp"; LoadXXX(FileName); // 파일을 로드하는 함수 |
이와 같이 짤것이다.
그런데 귀찮은 문제점이 있다.
이런 저런 다양한 테스트를 하게되면 파일들이 많이 쌓이게 되는 문제 말이다.

파일이 한 폴더에 많이 쌓이게 되면 보기 지저분하고 보기 지저분하니 파일관리도 힘들어진다.
"모델데이터는 뭔지 알겠는데 이 모델데이터에 사용되는 텍스쳐는 뭐뭐였지?" 이런 상황?
그래서 파일 관리 좀 하겠다고 폴더를 만들게 되면
char* FileName = "image/smile.bmp"; LoadXXX(FileName); |
더 세분화해서 관리한다면
char* FileName = "image/junjihyun/smile.bmp"; LoadXXX(FileName); |
이런 코드가 되겠지만 이렇게 폴더 이름과 파일이름을 반복해서 치게되면 엄청 귀찮아 진다.
이렇게 지루한 코드 작성을 계속하다가 문득 떠오른 아이디어가 떠올랐다. :D
작업폴더를 지정하고 그 폴더의 모든 하위 폴더를 관리하여 모든 파일의 이름을 알아 분석한 상태에서
파일 이름만으로 그 파일의 전체 경로를 얻어내는 방식이다.
비쥬얼 스튜디오로 코드 만들고 다른 폴더에 있는 파일 참조 할때
#include"Classes/CJunjihyun.h"
이렇게 해야 될 것을 추가 포함 디렉터리를 지정해서 하여서
#include"CJunjihyun.h"
이렇게 써도 파일이 참조되는것처럼 말이다.
장점은 파일 이름만으로 전체 경로를 얻어내서 지루한 코드가 많이 줄어든다는것!
단점은 작업폴더로 지정된 폴더내에서는 분류된 폴더라도 같이 파일이름이 있으면 안된다는점-0-;
파일이름만으로 전체경로를 얻기 때문이다.
그래도 이 단점 말고는 편할것 같아서 클래스를 만들어 보았다.
그 이름은 바로 CFilePathManager !! 어울리는 이름인지는 모르겠다-0-;
소스는 아래 링크로 다운받아서 보면된다! ( 봐주셈... -_-; )
CFilePathManager.h
CFilePathManager.cpp
클래스 메소드에 대한 설명은 CPP 구현단에 있다.
소스를 보면 알겠지만 작업폴더를 지정해줘서 초기화 한번해주고 ( Initialize(...) 함수이며 이때 폴더를 분석하면서 파일이름을 저장한다. )
GetFullPath(..)를 이용해서 파일의 전체경로를 얻을 수 있다.
그럼 이것을 적용한 코드는..
CFilePathManager FilePathMng; // 전역 변수 |
폴더내에 파일 관리를 깔끔하게 할 수 있고, 파일경로를 써주는 지루함이 없어졌다!
여담으로 현재 학원에서 진행하는 프로젝트에서 이 방법을 써서 파일을 로드하고 있다.
끝까지 쓸것인지는... 생각해봐야겠다. - -;
# by | 2008/05/30 00:51 | 프로그래밍관련 | 트랙백 | 덧글(5)






☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
굳잡