博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MOSS 文档库操作类
阅读量:4687 次
发布时间:2019-06-09

本文共 3505 字,大约阅读时间需要 11 分钟。

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;
}
}
}

转载于:https://www.cnblogs.com/Areas/archive/2011/12/23/2299573.html

你可能感兴趣的文章
九度OJ 1035:找出直系亲属(二叉树)
查看>>
hive left outer join的问题
查看>>
32位Win7下安装与配置PHP环境(二)
查看>>
图片、浏览器-HTML5/CSS3系列教程:使用SVG图片-by小雨
查看>>
[学习笔记]node.js中的path.extname方法
查看>>
[学习笔记]HTTP协议
查看>>
警告:Assigning to 'id<Delegate>' from incompatible type 'ViewController *const_st
查看>>
项目中字体比较粗,比较虚。
查看>>
杨延锟--ORACLE博客
查看>>
Web开发环境搭建 Eclipse-Java EE 篇
查看>>
python源码学习
查看>>
jdaaaaaavid --github
查看>>
xargs
查看>>
铁路微机监测分析与研究
查看>>
SpringBoot Tomcat启动报错
查看>>
css outline实践研究
查看>>
fackbook的Fresco的Image Pipeline以及自身的缓存机制
查看>>
Casablanca发布:一个用C++访问云的本地类库
查看>>
[转载]Python调用Shell 之间变量传递
查看>>
IOS开发网络篇—监测网络状态
查看>>