sharepoint list 文档上传和删除
最近项目需要对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 文档上传和删除的更多相关文章
- SharePoint 2013 文档上传的多种形式
SharePoint 2013 中的某些功能需要使用 ActiveX 控件.这会在不支持 ActiveX 的浏览器上产生限制.目前只有 32 位版本的 Internet Explorer 支持此功能. ...
- js仿百度文库文档上传页面的分类选择器_第二版
仿百度文库文档上传页面的多级联动分类选择器第二版,支持在一个页面同一时候使用多个分类选择器. 此版本号把HTML,CSS,以及图片都封装到"category.js"中.解决因文件路 ...
- Solr.NET快速入门(九)【二进制文档上传】【完】
二进制文档上传 SolrNet支持Solr"提取"功能(a.k.a. Solr"Cell")从二进制文档格式(如Word,PDF等)索引数据. 这里有一个简单的 ...
- Java文档上传问题设计
近期公司让做一个文档上传的功能,功能描写叙述大概是这样子滴 书籍名称.书籍定价.书籍封面图片(须要上传).文档内容 (须要上传) .还有其它相关的描写叙述信息. 我的设计 表 A 包括以上字段 , ...
- 多文档上传(upload multiple documents)功能不能使用怎么办?
问题描述: 在SharePoint 2010的文档库里选择documents标签,然后选择upload document下拉菜单,你会发现upload multiple documents那个按钮是灰 ...
- IE使用多彩文档上传数据库报错
使用多彩文档,用IE浏览器提交表单,双引号里面包含单引号,导致数据库插入不了,而用chrome浏览器不会报错,自动过滤单引号, 解决:content.replace("'", &q ...
- 迁移TFS,批量将文档导入SharePoint 2013 文档库
一.需求分析 公司需要将存在于旧系统(TFS)所有的文档迁移至新系统(SharePoint 2013).现已经将50G以上的文档拷贝到SharePoint 2013 Server上.这些文档是一些不规 ...
- 上传文件到 Sharepoint 的文档库中和下载 Sharepoint 的文档库的文件到客户端
文件操作应用场景: 如果你的.NET项目是运行在SharePoint服务器上的,你可以直接使用SharePoint服务器端对象模型,用SPFileCollection.Add方法 http://msd ...
- SharePoint 2010 文档管理之过期归档工具
前言:使用过SharePoint的人都知道,SharePoint对于操作是便捷的,但是对于数据量承载却是不令人满意的,这样,就要求我们需要更加合理的使用,规范大家的使用规则和习惯,所以,定期清理不必要 ...
随机推荐
- 【Ray Tracing The Next Week 超详解】 光线追踪2-4 Perlin noise
Preface 为了得到更好的纹理,很多人采用各种形式的柏林噪声(该命名来自于发明人 Ken Perlin) 柏林噪声是一种比较模糊的白噪声的东西:(引用书中一张图) 柏林噪声是用来生成一些看似杂乱 ...
- Nutch源码阅读进程5
看nutch的源码仿佛就是一场谍战片,而构成这精彩绝伦的谍战剧情的就是nutch的每一个从inject->generate->fetch->parse->update的环节,首 ...
- java 使用grpc步骤
1.配置grpc maven依赖 <dependency> <groupId>io.grpc</groupId> <artifactId>grpc-ne ...
- faker php测试数据库生成2
因内容太长,被csdn截断了,只好把另外的内容写到这里. //Biased // 在10到20之间得到一个随机数字,有更大的几率接近20 echo $faker->biasedNumberBet ...
- 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 ...
- 使用pytorch构建神经网络的流程以及一些问题
使用PyTorch构建神经网络十分的简单,下面是我总结的PyTorch构建神经网络的一般过程以及我在学习当中遇到的一些问题,期望对你有所帮助. PyTorch构建神经网络的一般过程 下面的程序是PyT ...
- CentOS 7 上安装vim 解決 centos -bash: vim: command not found
用CentOS上使用vim竟然用不了,报错没有该命令 centos -bash: vim: command not found 那么如何安裝 vim 呢? ---------------------- ...
- resteasy经验谈
resteasy 是java体系中比较成熟的rest框架,也是jax-rs规范的实现之一,dubbox的REST服务框架,就是采用的resteasy实现,近日在实际项目中遇到了几个问题,记录于此: ...
- 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 ...
- spy++使用指南
很多朋友都对窗口句柄比较迷糊,这篇短文就以spy++这个软件为主,介绍下窗体句柄和使用按键插件时,如果对这个句柄发送消息,即所谓的后台挂机.spy++这个软件来自VC++,装好VC后,就可以在工具中看 ...