项目的配置文件为了和服务器保持一致,每次打包时都从网上下载配置文件,由于下载的是zip压缩包,还需要解压,代码如下:

using ICSharpCode.SharpZipLib.Zip;
using System;
using System.IO;
using System.Net; public class CsvFilesDownloader
{
const string RootUrl = "http://xxx-"; // csv 文件下载地址
const string CSVDirAssetPath = "Assets/CSVConvertScripts/CSVFiles"; // csv 文件保存目录 #region Version public enum Version
{
Trunk, CBT3, CBT2, CBT1, TT, Daye, M4, M3, M2,
} #endregion public static void Start(Version version)
{
string url = RootUrl + version;
var request = (HttpWebRequest)WebRequest.Create(url);
request.Method = WebRequestMethods.Http.Post; var response = request.GetResponse();
var stream = response.GetResponseStream();
string saveDirPath = AssetBundleItem.GetFullPath(CSVDirAssetPath); Decompress(stream, saveDirPath);
} // 需使用开源类库:ICSharpCode.SharpZipLib,可以网上下载
static void Decompress(Stream src, string targetDirPath)
{
if (src == null)
throw new ArgumentNullException("src");
if (string.IsNullOrEmpty(targetDirPath))
throw new ArgumentException("targetDirPath"); if (!Directory.Exists(targetDirPath))
Directory.CreateDirectory(targetDirPath); using (ZipInputStream decompressor = new ZipInputStream(src))
{
ZipEntry entry; while ((entry = decompressor.GetNextEntry()) != null)
{
if (entry.IsDirectory)
continue; if (Path.GetExtension(entry.Name).ToLower() != ".csv")
continue; string fileName = Path.GetFileName(entry.Name);
string path = Path.Combine(targetDirPath, fileName);
byte[] data = new byte[2048]; using (FileStream streamWriter = File.Create(path))
{
int bytesRead;
while ((bytesRead = decompressor.Read(data, 0, data.Length)) > 0)
streamWriter.Write(data, 0, bytesRead);
}
}
}
} }

  

转载请注明出处:http://www.cnblogs.com/jietian331/p/5019492.html

c#之从服务器下载压缩包,并解压的更多相关文章

  1. php下载文件,解压文件,读取并写入新文件

    以下代码都是本人在工作中遇到的问题,并完成的具体代码和注释,不多说,直接上代码: <?php      //组织链接      $dataurl = "http://118.194.2 ...

  2. 第1节 IMPALA:4、5、linux磁盘的挂载和上传压缩包并解压

    第二步:开机之后进行磁盘挂载 分区,格式化,挂载新磁盘 磁盘挂载 df -lh fdisk -l 开始分区 fdisk /dev/sdb   这个命令执行后依次输 n  p  1  回车  回车  w ...

  3. mac通过自带的ssh连接Linux服务器并上传解压文件

    需求: 1:mac连接linux服务器 2:将mac上的文件上传到linux服务器指定位置 3:解压文件 mac上使用命令,推荐使用 iterm2 .当然,也可以使用mac自带的终端工具. 操作过程: ...

  4. Hadoop:读取hdfs上zip压缩包并解压到hdfs的实现代码

    背景: 目前工作中遇到一大批的数据,如果不压缩直接上传到ftp上就会遇到ftp空间资源不足问题,没办法只能压缩后上传,上穿完成后在linux上下载.但是linux客户端的资源只有20G左右一个压缩包解 ...

  5. 【DataBase】 在Windows系统环境 下载和安装 解压版MySQL数据库

    MySQL官网解压版下载地址:https://dev.mysql.com/downloads/mysql/ 为什么不推荐使用安装版?无脑下一步,很多配置的东西学习不到了 点选第一个就好了,下面的是调试 ...

  6. ubuntu下各种压缩包的解压命令

    .tar解包:tar xvf FileName.tar打包:tar cvf FileName.tar DirName(注:tar是打包,不是压缩!)-------------------------- ...

  7. FTP下载导致Zip解压失败的原因

    情形:网关通过FTP下载快钱对账文件时通过Apache下commons-net的commons-net-3.5.jar进行封装,对账文件中有中文和英文的文字,大部分情况下能够下载成功,而且也能解压成功 ...

  8. linux下压缩包的解压

    linux下 最常见的是 .tar.gz 包和.tar.bz2包 .tar.gz格式的压缩包解压命令是:          tar   -zxvf   xx.tar.gz .tar.bz2格式的压缩包 ...

  9. 如何下载安装MySQL 解压版和安装版以及2个版本的区别

    参考链接:https://blog.csdn.net/qq_33800083/article/details/80722829

随机推荐

  1. iOS \'The sandbox is not sync with the Podfile.lock\'问题解决

    iOS \'The sandbox is not sync with the Podfile.lock\'问题解决 HUANGDI 发表于 2015-02-27 09:51:13 问题描述: gith ...

  2. calc()使用笔记

    calc()可以给元素做运算, calc(expression) eg: .a { width: -webkit-calc(100% - 2px); width: -moz-calc(100% - 2 ...

  3. 【prim + kruscal 】 最小生成树模板

    来源:dlut oj 1105: Zhuo’s Dream Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 40 Solved: 14[Submit][St ...

  4. PHP 实现定时任务的几种方法

    一. 简单直接不顾后果型 <?php ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行. set_time_limit(0);// 通过set_time_limi ...

  5. 自动打开notepad 并写入数据

    import java.awt.AWTException; import java.awt.Robot; import java.awt.event.KeyEvent; import java.io. ...

  6. NGUI 添加回调函数

    //缓动完成 TweenPosition tweenPos=GetComponent<TweenPosition>(); tweenPos.AddOnFinished(complete); ...

  7. Disassembly2:Built-in Type

    先贴一段代码: 跟踪后看到:

  8. java文件处理之压缩,分割

    http://blog.csdn.net/ycg01/article/details/1366648 java文件处理之压缩,分割 标签: javaexceptionimportnullbytefil ...

  9. hdu_5085_Counting problem(莫队分块思想)

    题目连接:hdu_5085_Counting problem 题意:给你一个计算公式,然后给你一个区间,问这个区间内满足条件的数有多少个 题解:由于这个公式比较特殊,具有可加性,我们考虑讲一个数分为两 ...

  10. hdu_3549_Flow Problem(最大流)

    题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=3549 题意:求1到n的最大流 题解:模版题,直接上Claris的ISAP,效率是一般dfs的十倍,OR ...