最近项目需要对sharepoint 文件操作,于是自己写了一个简单的工具类分享出来:

namespace Microsoft.SharePoint
{
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Utilities;
public class DocLibManager
{
public static void UploadFile(SPList list, string filePath, string dirName, string fileName)
{
SPFolder rootFolder = GetSPFolder(list, dirName);
SPFileCollection files = rootFolder.Files; if (FileExists(list, dirName, fileName))
{
rootFolder.Files.Delete(SPUrlUtility.CombineUrl(rootFolder.Url ,fileName));
}
using (FileStream fs = new FileStream(filePath, FileMode.Open))
{
rootFolder.Files.Add(fileName, fs);
} } public static bool FileExists(SPList list, string dirName, string fileName)
{
SPFolder rootFolder = GetSPFolder(list, dirName);
string fileurl = SPUrlUtility.CombineUrl(list.ParentWebUrl, SPUrlUtility.CombineUrl(rootFolder.Url, fileName));
SPFile file = list.ParentWeb.GetFile(fileurl);
if (file != null) {
return file.Exists;
}
return false;
} public static void RemoveFile(SPList list, string dirName, string fileName)
{
SPFolder rootFolder = GetSPFolder(list, dirName);
if (!string.IsNullOrEmpty(fileName))
{
string fileurl = SPUrlUtility.CombineUrl(list.ParentWebUrl, SPUrlUtility.CombineUrl(rootFolder.Url, fileName));
SPFile file = list.ParentWeb.GetFile(fileurl);
if (file != null && file.Exists)
file.Delete();
}
else
{
rootFolder.Delete();
} }
public static SPFolder GetSPFolder(SPList list, string dirName)
{
SPFolder rootFolder = list.RootFolder;
if (string.IsNullOrEmpty(dirName) || dirName == rootFolder.Name)
{ }
else
{
SPFolder subFolder = null;
subFolder = rootFolder.SubFolders.Add(SPUrlUtility.CombineUrl(rootFolder.Url, dirName));
subFolder = rootFolder.SubFolders[dirName];
rootFolder = subFolder;
}
return rootFolder;
} }
}

调用代码:

 string listurl = "http://mossvr/docs/Documents/Forms/AllItems.aspx";
SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPSite site = new SPSite(listurl))
{
using (SPWeb web = site.OpenWeb(listurl))
{
SPList list = web.GetList(listurl);
DocLibManager.UploadFile(list, @"C:\DocLib.txt", "root", "test.txt");
DocLibManager.RemoveFile(list, "root", "test.txt");
}
}
});

如果是sharepoint server 建议考虑性能 http://blog.csdn.net/ma_jiang/article/details/6553190

sharepoint list 文档上传和删除的更多相关文章

  1. SharePoint 2013 文档上传的多种形式

    SharePoint 2013 中的某些功能需要使用 ActiveX 控件.这会在不支持 ActiveX 的浏览器上产生限制.目前只有 32 位版本的 Internet Explorer 支持此功能. ...

  2. js仿百度文库文档上传页面的分类选择器_第二版

    仿百度文库文档上传页面的多级联动分类选择器第二版,支持在一个页面同一时候使用多个分类选择器. 此版本号把HTML,CSS,以及图片都封装到"category.js"中.解决因文件路 ...

  3. Solr.NET快速入门(九)【二进制文档上传】【完】

    二进制文档上传 SolrNet支持Solr"提取"功能(a.k.a. Solr"Cell")从二进制文档格式(如Word,PDF等)索引数据. 这里有一个简单的 ...

  4. Java文档上传问题设计

    近期公司让做一个文档上传的功能,功能描写叙述大概是这样子滴 书籍名称.书籍定价.书籍封面图片(须要上传).文档内容 (须要上传) .还有其它相关的描写叙述信息. 我的设计  表 A  包括以上字段 , ...

  5. 多文档上传(upload multiple documents)功能不能使用怎么办?

    问题描述: 在SharePoint 2010的文档库里选择documents标签,然后选择upload document下拉菜单,你会发现upload multiple documents那个按钮是灰 ...

  6. IE使用多彩文档上传数据库报错

    使用多彩文档,用IE浏览器提交表单,双引号里面包含单引号,导致数据库插入不了,而用chrome浏览器不会报错,自动过滤单引号, 解决:content.replace("'", &q ...

  7. 迁移TFS,批量将文档导入SharePoint 2013 文档库

    一.需求分析 公司需要将存在于旧系统(TFS)所有的文档迁移至新系统(SharePoint 2013).现已经将50G以上的文档拷贝到SharePoint 2013 Server上.这些文档是一些不规 ...

  8. 上传文件到 Sharepoint 的文档库中和下载 Sharepoint 的文档库的文件到客户端

    文件操作应用场景: 如果你的.NET项目是运行在SharePoint服务器上的,你可以直接使用SharePoint服务器端对象模型,用SPFileCollection.Add方法 http://msd ...

  9. SharePoint 2010 文档管理之过期归档工具

    前言:使用过SharePoint的人都知道,SharePoint对于操作是便捷的,但是对于数据量承载却是不令人满意的,这样,就要求我们需要更加合理的使用,规范大家的使用规则和习惯,所以,定期清理不必要 ...

随机推荐

  1. 3D游戏开发之UE4中的集合:TSet容器

    好久没有更新了,最近一直在老家过年,网络不通的,今天才有时间更新一集. 一.TSet<T>是什么 UE4中,除了TArray动态数组外,还提供了各种各样的模板容器.这一节,我们就介绍集合容 ...

  2. 系统的Drawable(二)-Selector

    系统的Drawable(二)-Selector Selector漫谈 Selector是定义 StateListDrawable 的标签,该Drawable代表着一个Drawable的集合,每一个Dr ...

  3. 数据包发包工具bittwist

    数据包发包工具bittwist   渗透测试中,通过发送特定格式的包,可以实施网络嗅探和攻击.Kali Linux提供一款发包工具bittwist.该工具可以通过指定的网络接口发送数据.该工具不仅可以 ...

  4. Sqlite3+EF6踩的坑

    摘要 最近在用winform,有些数据需要本地存储,所以想到了使用sqlite这个文件数据库.在使用Nuget安装sqlite的时候,发现会将Ef也安装上了,所以想着使用EF进行数据的操作吧,所以这就 ...

  5. 学一点 MYSQL 双机异地热备份—-MYSQL主从,主主备份原理及实践

    简单介绍mysql双机,多机异地热备简单原理实战. 双机热备的概念简单说一下,就是要保持两个数据库的状态自动同步.对任何一个数据库的操作都自动应用到另外一个数据库,始终保持两个数据库数据一致. 这样做 ...

  6. Android: INSTALL_FAILED_UPDATE_INCOMPATIBLE错误解决措施

    晚上在测一个widget,前面测的好好的,后面再安装的时候发现如下错误:[2009-06-07 02:39:35 - battery] Performing sync[2009-06-07 02:39 ...

  7. 避免string.Format方法的装箱

    我们知道,使用string.Format方法可能会存在装箱的情况.比如如下: static void Main(string[] args) { string s = string.Format(&q ...

  8. android模拟器修改时间

        我们看右上角的模拟器的时间,是不是和我们现在时间不同步呢   点击主菜单之后,我们找到下边的设置的按钮   下边找到时间和日期, 怎么把页面修改中文, 可以看(安卓模拟器怎么修改语言)的经验 ...

  9. StringBuffer与StringBuilder差别

    从JDK源代码能够看出,StringBuffer和StringBuilder都是继承自AbstractStringBuilder,事实上这两个类的功能实现都是在AbstractStringBuilde ...

  10. JVM调优系列:(五)JVM常用调试参数和工具

    转自:http://blog.csdn.net/opensure/article/details/46715769 JVM常用调试参数: –verbose:gc在虚拟机发生内存回收时在输出设备显示信息 ...