前言

  最近碰到这样一个需求,用户需要批量打包下载sharepoint文档库中的文档,所以,就需要开发一个打包下载的服务。

  然后,把打包的代码分享给大家,也许会有需要的人。

        static void Main(string[] args)
{
string filesPath = "/DC/T1.txt;/DC/T2.txt";
CreateZipFile(filesPath, @"C:\Temp\", "http://localhost");
} /// <summary>
/// 创建压缩包
/// </summary>
/// <param name="filesPath"></param>
/// <param name="zipFilePath"></param>
private static void CreateZipFile(string filesPath, string zipFilePath, string siteUrl)
{
string[] filenames = filesPath.Split(';');
using (SPSite site = new SPSite(siteUrl))
{
using (SPWeb web = site.OpenWeb())
{
string tempName = Guid.NewGuid().ToString().Replace("-", "") + ".zip";
zipFilePath = zipFilePath + tempName;
Stream sr = File.Create(zipFilePath);
using (ZipOutputStream s = new ZipOutputStream(sr))
{
s.SetLevel();// 压缩级别 0-9
byte[] buffer = null;
foreach (string file in filenames)
{
ZipEntry entry = new ZipEntry(GetFileName(file));
entry.DateTime = DateTime.Now;
s.PutNextEntry(entry);
string filename = web.Url + file;
SPFile ff = web.GetFile(filename);
buffer = ff.OpenBinary();
int sourceBytes = buffer.Length;
s.Write(buffer, , sourceBytes);
}
s.Finish();
s.Close();
sr.Close();
FileStream fs = File.Open(zipFilePath, FileMode.OpenOrCreate);
web.Lists["Temp"].RootFolder.Files.Add(web.ServerRelativeUrl + web.Lists["Temp"].RootFolder.Url + "/" + tempName, fs, true);
fs.Close();
File.Delete(zipFilePath);
}
}
}
return;
} public static string GetFileName(string filePath)
{
string fileName = filePath.Substring(filePath.LastIndexOf('/') + , filePath.Length - filePath.LastIndexOf('/') - );
return fileName;
}

SharePoint 压缩打包文件代码分享的更多相关文章

  1. java.util.zip压缩打包文件总结一:压缩文件及文件下面的文件夹

    一.简述 zip用于压缩和解压文件.使用到的类有:ZipEntry  ZipOutputStream 二.具体实现代码 package com.joyplus.test; import java.io ...

  2. [转]C#压缩打包文件

    /// <summary> /// 压缩和解压文件 /// </summary> public class ZipClass { /// <summary> /// ...

  3. asp.net C#压缩打包文件例子

    /// <summary> /// 压缩和解压文件 /// </summary> public class ZipClass { /// <summary> /// ...

  4. C#压缩打包文件

    该控件是使用csharp写的,因此可以直接在dotnet环境中引用,不需要注册. 利用 SharpZipLib方便地压缩和解压缩文件最新版本的SharpZipLib(0.84)增加了很多新的功能,其中 ...

  5. java.util.zip压缩打包文件总结二: ZIP解压技术

    一.简述 解压技术和压缩技术正好相反,解压技术要用到的类:由ZipInputStream通过read方法对数据解压,同时需要通过CheckedInputStream设置冗余校验码,如: Checked ...

  6. Linux系统下压缩文件时过滤指定的文件 |Linux系统压缩指定文件代码

    进入要压缩的目录: [root@iZ25c748tjqZ wechat]# cd /alidata1/htdocs/wechat/ 查看目录: [root@iZ25c748tjqZ wechat]# ...

  7. C#强力粉碎文件代码分享,升级中用到

    360的文件粉碎机还是很强大的,在我们客户端winform升级的时候,必须将有些文件进行强力删除后下载更新,如果删除失败很有可能整个 程序就无法更新到最新的版本,所以这里参考了网上的资料整理了一个文件 ...

  8. linux文件压缩与文件夹压缩(打包)

    目录 一:linux文件压缩 1.linux常见的压缩包有哪些? 2.bzip压缩(文件) 二:打包(文件夹压缩) 1.打包命令 2.参数 3.参数解析(实战) 4.注意事项 简介: win中的压缩包 ...

  9. C# 压缩打包文件下载

    C# 压缩打包文件下载 public class MyNameTransfom : ICSharpCode.SharpZipLib.Core.INameTransform { #region INam ...

随机推荐

  1. Windows xp下安装sql server2005所碰到的一些问题及解决方法

    之前提到的帮老板做的一个中船重工的项目,其中的一个子模块:windows下获取特定进程网络流量 一开始是用VS2010做的,后来老板把项目书拿给我看后,明确要求开发环境为VS2005和Sql serv ...

  2. IOC创建对象的几种方式

    接上一篇IOC入门 IOC创建对象的几种方式 1)调用无参数构造器 2)带参数构造器 3)工厂创建对象 工厂类:静态方法创建对象 工厂类:非静态方法创建对象 1.对之前的User类进行一些修改,加上一 ...

  3. springboot 解决 woff2、ttf 跨域无法解析问题

    @Configuration public class CORSConfiguration extends WebMvcConfigurerAdapter { @Override public voi ...

  4. spring中注册bean(通过代码动态注册)

    看公司的源代码,在一个类中使用到了BeanDefinitionBuilder这个类,在学习之后才知道在项目中可能没有注册bean,在使用的时候才会进行注册,就涉及到了动态bean的注册,所以,在文章中 ...

  5. 007 jquery过滤选择器-----------(屬性过滤选择器)

    1.介紹 2.程序 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> < ...

  6. SQL中的坑

    一.where,group by,having --group by 和having 解释:前提必须了解sql语言中一种特殊的函数:聚合函数, 例如SUM, COUNT, MAX, AVG等.这些函数 ...

  7. CF1010D Mars rover [位运算,DP]

    题目传送门 Mars Rover 格式难调,题面就不放了. 分析: 今天考试的时候考了这道题目的加强版,所以来做. 其实也并不难,我们建立好树形结构以后先把初始权值全部求出,然后就得到了根节点的初始值 ...

  8. MOXA的Nport5600初始密码

    今天第一次弄Nport,看了半天手册没找到初始密码,网上也搜不到,按照说明书上想打电话问问,发现根本是空号... 后来灵感一来试了一下,居然是:moxa

  9. Java 操纵XML之读取XML文件

    Java 操纵XML之读取XML文件 一.JAVA DOM PARSER DOM interfaces The DOM defines several Java interfaces. Here ar ...

  10. Bzoj3122:多项式BSGS

    根据鸽笼原理,在p次后一定循环,一眼BSGS.发现他给的函数是个一次函数,一次函数有什么性质呢?f(f(x))还是一次函数,这样就能做了.首先我们暴力预处理出f(f(f(x)))......sqrt( ...