前言

  最近碰到这样一个需求,用户需要批量打包下载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. java iterator(迭代器)

    任何容器类,都必须有某种方式可以插入元素并将它们再次取出,毕竟持有事物是容器最基本的工作,对于List,add()插入fang,get()取出,如果从更高层的角度思考,会发现这里有个确定:要用容器,必 ...

  2. 解决Python3 pip list 红色DEPRECATION

    解决Python3 pip list 红色DEPRECATION 打开文件扩展名和隐藏的项目 找到ProgramData,在该目录下创建pip文件夹,在pip里面创建pip.ini  在pip.ini ...

  3. ansible源码解读

    Ansible源码获取 Ansible Github:https://github.com/ansible Ansible目录结构 $ tree -L 2 ansible-2.0.0.0 ansibl ...

  4. 采用MiniProfiler监控EF与.NET MVC项目(Entity Framework 延伸系列1)(转)

    前言 Entity Framework 延伸系列目录 今天来说说EF与MVC项目的性能检测和监控 首先,先介绍一下今天我们使用的工具吧. MiniProfiler~ 这个东西的介绍如下: MVC Mi ...

  5. CI框架中自带的加密解密如何应用

    首先我们找到配置文件application/config/config.php  ,找到如下代码: ? 1 $config['encryption_key'] = "YOUR KEY&quo ...

  6. DSP 程序的执行时间

    在访问TSCL寄存器前要定义 cregister volatile unsigned int TSCL; TSCL/TSCH,它们与CPU同频,共同表示一个64-bit数,CPU运行一个cycle,该 ...

  7. sublime text3中文乱码问题解决方案

    1. 首先需要安装包convertToUTF8,安装完重启后如果仍然不能正常显示中文,则需要进行用户配置. 2.用户配置:preferences>settings 在用户设置加入一个属性:&qu ...

  8. hdu4055

    hdu4055 题意 给出一个长度为 n - 1 的字符串,要求构造一个包含数字 [1, n] 的排列,从第二位开始,'I' 表示当前位数字比前一位大,'D' 表示当前位数字比前一位小,'?' 表示可 ...

  9. IEnumerable<T>

    IEnumerable 饮水思源 <C#本质论> Overview 根据定义,.Net 的中集合,本质上是一个类,它最起码实现了IEnumeraable 或者非泛型的IEnumerable ...

  10. hdu 5726 tetrahedron 立体几何

    tetrahedron/center> 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5726 Description Given four p ...