Document Library는  SPList의 한 종류인 동시에, 오로지 File만을 저장할 수 있는 일종의 웹폴더와 같은 구조로 된 변종 List 이다.
SPList로써 생성을 할 때, List Template 중 “문서 라이브러리”라는 형태로 만들어 주면 탄생하게 된다.그러나, 일반 Customize List 처럼 다양한 Field들을 엮는 형태가 아니고, 기묘하게 그 안에 폴더를 넣을 수 있으며 다양한 종류의 파일을 독자적으로 넣을 수 있게 되어 있다.

그러기에 지금까지 게시판 류와 같은 형태로 다루기에는 조금 내용이 다르게 진행 된다.
이 작업 중 가장 나에게 큰 태클을 걸어주신 부분은 바로 Folder 만들기.
이 부분을 하기 위해 SPList의 각종 메소드들과 속성들을 확인해 봤는데, 가장 근접한 내용은 바로 Folders라는 항목을 이용하는 것까지는 알았는데, Add를 해도 Item을 업데이트 해도 반응이 없었다. 게다가, Add 안에 들어가는 Url의 의미도 정확히 알 수도 없었다.

이에 몇 개 사이트를 돌아다니다가, 겨우 방법을 찾았다.

만일 아래와 같은 구조의 문서 라이브러리 가 있다고 할 때 생성 방법은 아래와 같다.

// 문서라이브러리1 ---> AAAA -> BBBB
//                      |
//                       --> AAAA2


// 문서 라이브러리에 해당하는 List를 얻어온다.
SPList docLib1 = web.Lists[“문서라이브러리1”];

// 문서 라이브러리의 옵션 중 폴더 생성 가능하도록 한다.
docLib1.EnableFolderCreation = true;

// AAAAA 폴더를 생성한다.
SPFolder fld_AAAAA = docLib1.RootFolder.SubFolders.Add(docLib1.RootFolder.Url + “/” + “AAAAA”);
fld_AAAAA.Update();

// AAAAA 밑의 BBBB를 생성한다.
SPFolder fld_BBBB = fld_AAAAA.SubFolders.Add(fld_AAAAA.Url + “/” + “BBBB”);
fld_BBBB.Update();

// AAAAA와 동일한 레벨로 AAAA2를 생성한다.
SPFolder fld_AAAA2 = docLib1.RootFolder.SubFolders.Add(docLib1.RootFolder.Url + “/” + “AAAA2”);
fld_AAAA2.Update(); 


즉 리스트의 RootFolder라는 부분에서 시작하여 SubFolder라는 속성값을 이용해 계속 Add로 추가해 준다. 해당하는 Url은 리스트의 RootFolder URL을 시작으로해서 계속 내려가 주면 된다. 무엇보다 제일 먼저 SPList의 EnableFolderCreation을 반드시 true로 만들어 준다.

728x90

+ Recent posts

728x90