最近项目需要对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. 【Ray Tracing The Next Week 超详解】 光线追踪2-4 Perlin noise

     Preface 为了得到更好的纹理,很多人采用各种形式的柏林噪声(该命名来自于发明人 Ken Perlin) 柏林噪声是一种比较模糊的白噪声的东西:(引用书中一张图) 柏林噪声是用来生成一些看似杂乱 ...

  2. Nutch源码阅读进程5

    看nutch的源码仿佛就是一场谍战片,而构成这精彩绝伦的谍战剧情的就是nutch的每一个从inject->generate->fetch->parse->update的环节,首 ...

  3. java 使用grpc步骤

    1.配置grpc maven依赖 <dependency> <groupId>io.grpc</groupId> <artifactId>grpc-ne ...

  4. faker php测试数据库生成2

    因内容太长,被csdn截断了,只好把另外的内容写到这里. //Biased // 在10到20之间得到一个随机数字,有更大的几率接近20 echo $faker->biasedNumberBet ...

  5. 2010-2011 ACM-ICPC, NEERC, Moscow Subregional Contest Problem H. Hometask 水题

    Problem H. Hometask 题目连接: http://codeforces.com/gym/100714 Description Kolya is still trying to pass ...

  6. 使用pytorch构建神经网络的流程以及一些问题

    使用PyTorch构建神经网络十分的简单,下面是我总结的PyTorch构建神经网络的一般过程以及我在学习当中遇到的一些问题,期望对你有所帮助. PyTorch构建神经网络的一般过程 下面的程序是PyT ...

  7. CentOS 7 上安装vim 解決 centos -bash: vim: command not found

    用CentOS上使用vim竟然用不了,报错没有该命令 centos -bash: vim: command not found 那么如何安裝 vim 呢? ---------------------- ...

  8. resteasy经验谈

    resteasy 是java体系中比较成熟的rest框架,也是jax-rs规范的实现之一,dubbox的REST服务框架,就是采用的resteasy实现,近日在实际项目中遇到了几个问题,记录于此:   ...

  9. Implementation of Serial Wire JTAG flash programming in ARM Cortex M3 Processors

    Implementation of Serial Wire JTAG flash programming in ARM Cortex M3 Processors The goal of the pro ...

  10. spy++使用指南

    很多朋友都对窗口句柄比较迷糊,这篇短文就以spy++这个软件为主,介绍下窗体句柄和使用按键插件时,如果对这个句柄发送消息,即所谓的后台挂机.spy++这个软件来自VC++,装好VC后,就可以在工具中看 ...