using System;
using System.Data;using System.Configuration;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using Microsoft.SharePoint;using System.IO;namespace StatutesPublication
{ public class DocLib { private string siteUri;//网站集 private string webUri;//网站 private string docLibUri;//文档库 SPList list = null;public DocLib(string siteUri, string webUri, string docLibUri)
{ this.siteUri = siteUri; this.webUri = webUri; this.docLibUri = docLibUri; }//打开文档库并返回其引用
public SPList Open() { SPSite site = null; SPWeb web = null; SPList list = null; //打开网站集 try { site = new SPSite(siteUri); } catch (Exception ex) { throw new Exception("网站集错误:" + ex.Message); } //打开文档库所在网站 try { web = site.OpenWeb(webUri); } catch (Exception ex) { throw new Exception("网站错误:" + ex.Message); } //打开文档库 try { web.Lists.IncludeRootFolder = true;//SPList.RootFolder的访问默认没有开启 list = web.Lists[docLibUri]; } catch (Exception ex) { throw new Exception("文档库错误:" + ex.Message); } return list; }public string Upload(string filePath,string dirName,string fileName)
{ try { list = this.Open(); } catch { return "文档库打开错误!"; } SPFolder rootFolder = list.RootFolder; if (dirName == "root")//直接保存在根目录 { if(FileExists("root",fileName)) rootFolder.Files.Delete(rootFolder.Url + "/" + fileName); FileStream fs = new FileStream(filePath, FileMode.Open); byte[] content = new byte[fs.Length]; fs.Read(content, 0, (int)fs.Length); rootFolder.Files.Add(fileName, content); fs.Close(); } else { SPFolder subFolder = null; subFolder = rootFolder.SubFolders.Add(rootFolder.Url + "/" + dirName); subFolder = rootFolder.SubFolders[dirName]; if(FileExists(dirName,fileName)) subFolder.Files.Delete(subFolder.Url + "/" + fileName); FileStream fs = new FileStream(filePath, FileMode.Open); byte[] content = new byte[fs.Length]; fs.Read(content, 0, (int)fs.Length); subFolder.Files.Add(fileName, content); fs.Close(); } return "Success"; }public bool FileExists(string dirName, string fileName)
{ try { list = this.Open(); } catch { return false; } SPFolder rootFolder = list.RootFolder; if (dirName == "root") { foreach (SPFile file in rootFolder.Files) { if (file.Name == fileName) return true; } } else { SPFolder subFolder = null; subFolder = rootFolder.SubFolders.Add(rootFolder.Url + "/" + dirName); subFolder = rootFolder.SubFolders[dirName]; foreach (SPFile file in subFolder.Files) { if (file.Name == fileName) return true; } } return false; }public void FileRemove(string dirName, string fileName)
{ try { list = this.Open(); } catch { return; } SPFolder rootFolder = list.RootFolder; if (dirName == "root") { foreach (SPFile file in rootFolder.Files) { if (file.Name == fileName) file.Delete(); } } else { SPFolder subFolder = null; subFolder = rootFolder.SubFolders.Add(rootFolder.Url + "/" + dirName); subFolder = rootFolder.SubFolders[dirName]; foreach (SPFile file in subFolder.Files) { if (file.Name == fileName) file.Delete(); } } }//读取用户
public string GetUser() { SPSite site = null; SPWeb web = null; //打开网站集 try { site = new SPSite(siteUri); } catch (Exception ex) { //throw new Exception("网站集错误:" + ex.Message); return String.Empty; } //打开文档库所在网站 try { web = site.OpenWeb(webUri); } catch (Exception ex) { //throw new Exception("网站错误:" + ex.Message); return String.Empty; } string spUser = web.CurrentUser.Name; return spUser; } }}