문서 라이브러리에 있는 첨부파일을 다운로드 받고 싶을때.
이러한 메소드를 사용하면 스트림을 파일로 output 해주는데
public static void SaveMemoryStream(MemoryStream ms, string FileName)
{
FileStream outStream = File.OpenWrite(FileName);
ms.WriteTo(outStream); //파일스트림으로 저장 하고
outStream.Flush(); //깨끗이 비운후
outStream.Close(); //끝냅니다.
}
protected override void CreateChildControls()
{
base.CreateChildControls();
SPWeb web = SPContext.Current.Site.OpenWeb();
//현재 사이트 안에 있는 모든 폴더 안에 있는 파일을 출력 해 보려고 한다.
foreach (SPFolder folder in web.Folders)
{
foreach (SPFile file in folder.Files)
{
string filename = file.Name;
byte[] data = file.OpenBinary();
MemoryStream ms = new MemoryStream(data);
//간단 하게 하려고 이름은 임의로 주어 버렸다.
SaveMemoryStream(ms, "testchiwonii.doc");//D:\windows\system32\inetsrv 에 저장이 됩니다.
}
}
}
}
이렇게 하면 저장이 되는데, administrator가 아니면 또 권한 오류가 난다. 하...