sharepoint 2007 文档库编程

来源:互联网 发布:网络暴力经典案例 编辑:程序博客网 时间:2024/04/29 14:26
  1. using System;
  2. using System.Data;
  3. using System.Configuration;
  4. using System.Web;
  5. using System.Web.Security;
  6. using System.Web.UI;
  7. using System.Web.UI.WebControls;
  8. using System.Web.UI.WebControls.WebParts;
  9. using System.Web.UI.HtmlControls;
  10. using Microsoft.SharePoint;
  11. using System.IO;
  12. namespace StatutesPublication
  13. {
  14. public class DocLib
  15. {
  16. private string siteUri;//网站集
  17. private string webUri;//网站
  18. private string docLibUri;//文档库
  19. SPList list = null;
  20. public DocLib(string siteUri,string webUri, string docLibUri)
  21. {
  22. this.siteUri = siteUri;
  23. this.webUri = webUri;
  24. this.docLibUri = docLibUri;
  25. }
  26. //打开文档库并返回其引用
  27. public SPList Open()
  28. {
  29. SPSite site = null;
  30. SPWeb web = null;
  31. SPList list = null;
  32. //打开网站集
  33. try
  34. {
  35. site = new SPSite(siteUri);
  36. }
  37. catch (Exception ex)
  38. {
  39. throw new Exception("网站集错误:" + ex.Message);
  40. }
  41. //打开文档库所在网站
  42. try
  43. {
  44. web = site.OpenWeb(webUri);
  45. }
  46. catch (Exception ex)
  47. {
  48. throw new Exception("网站错误:" + ex.Message);
  49. }
  50. //打开文档库
  51. try
  52. {
  53. web.Lists.IncludeRootFolder = true;//SPList.RootFolder的访问默认没有开启
  54. list = web.Lists[docLibUri];
  55. }
  56. catch (Exception ex)
  57. {
  58. throw new Exception("文档库错误:" + ex.Message);
  59. }
  60. return list;
  61. }
  62. public string Upload(string filePath,string dirName,string fileName)
  63. {
  64. try
  65. {
  66. list = this.Open();
  67. }
  68. catch
  69. {
  70. return "文档库打开错误!";
  71. }
  72. SPFolder rootFolder = list.RootFolder;
  73. if (dirName == "root")//直接保存在根目录
  74. {
  75. if(FileExists("root",fileName))
  76. rootFolder.Files.Delete(rootFolder.Url + "/" + fileName);
  77. FileStream fs = new FileStream(filePath, FileMode.Open);
  78. byte[] content = newbyte[fs.Length];
  79. fs.Read(content, 0, (int)fs.Length);
  80. rootFolder.Files.Add(fileName, content);
  81. fs.Close();
  82. }
  83. else
  84. {
  85. SPFolder subFolder = null;
  86. subFolder = rootFolder.SubFolders.Add(rootFolder.Url + "/" + dirName);
  87. subFolder = rootFolder.SubFolders[dirName];
  88. if(FileExists(dirName,fileName))
  89. subFolder.Files.Delete(subFolder.Url + "/" + fileName);
  90. FileStream fs = new FileStream(filePath, FileMode.Open);
  91. byte[] content = new byte[fs.Length];
  92. fs.Read(content, 0, (int)fs.Length);
  93. subFolder.Files.Add(fileName, content);
  94. fs.Close();
  95. }
  96. return "Success";
  97. }
  98. public bool FileExists(string dirName,string fileName)
  99. {
  100. try
  101. {
  102. list = this.Open();
  103. }
  104. catch
  105. {
  106. return false;
  107. }
  108. SPFolder rootFolder = list.RootFolder;
  109. if (dirName == "root")
  110. {
  111. foreach (SPFile file in rootFolder.Files)
  112. {
  113. if (file.Name == fileName)
  114. return true;
  115. }
  116. }
  117. else
  118. {
  119. SPFolder subFolder = null;
  120. subFolder = rootFolder.SubFolders.Add(rootFolder.Url + "/" + dirName);
  121. subFolder = rootFolder.SubFolders[dirName];
  122. foreach (SPFile file in subFolder.Files)
  123. {
  124. if (file.Name == fileName)
  125. return true;
  126. }
  127. }
  128. return false;
  129. }
  130. public void FileRemove(string dirName,string fileName)
  131. {
  132. try
  133. {
  134. list = this.Open();
  135. }
  136. catch
  137. {
  138. return;
  139. }
  140. SPFolder rootFolder = list.RootFolder;
  141. if (dirName == "root")
  142. {
  143. foreach (SPFile file in rootFolder.Files)
  144. {
  145. if (file.Name == fileName)
  146. file.Delete();
  147. }
  148. }
  149. else
  150. {
  151. SPFolder subFolder = null;
  152. subFolder = rootFolder.SubFolders.Add(rootFolder.Url + "/" + dirName);
  153. subFolder = rootFolder.SubFolders[dirName];
  154. foreach (SPFile file in subFolder.Files)
  155. {
  156. if (file.Name == fileName)
  157. file.Delete();
  158. }
  159. }
  160. }
  161. //读取用户
  162. public string GetUser()
  163. {
  164. SPSite site = null;
  165. SPWeb web = null;
  166. //打开网站集
  167. try
  168. {
  169. site = new SPSite(siteUri);
  170. }
  171. catch (Exception ex)
  172. {
  173. //throw new Exception("网站集错误:" + ex.Message);
  174. return String.Empty;
  175. }
  176. //打开文档库所在网站
  177. try
  178. {
  179. web = site.OpenWeb(webUri);
  180. }
  181. catch (Exception ex)
  182. {
  183. //throw new Exception("网站错误:" + ex.Message);
  184. return String.Empty;
  185. }
  186. string spUser = web.CurrentUser.Name;
  187. return spUser;
  188. }
  189. }
  190. }
  191. <pre>
最近在使用Sharepoint开发网站,写了一个简单的操作文档库的类,供大家分享。已实现功能:
1.上传文件到文档库
2.删除文档库中的文件
3.读取当前登录用户
功能比较简单且还在完善中,希望大家多交流
原创粉丝点击