我试图编写一个asp.net Web Api Restful服务,我需要通过它发送(.html,.css,.js,.png图像)文件(所有这些文件都属于一个JQuery移动应用程序,使用Visual Studio 2013和新的多设备混合功能.ie Cordova扩展程序在一个请求中写入移动客户端。
我脑子里有两个问题。
首先,如何在一个请求中将这些文件发送到客户端。我需要拉上它们然后返回客户端吗?如果将它们压缩是一个可行的选项,我是否需要维护文件夹和子文件夹的层次结构(在zip文件中),如在Visual Studio项目中维护的那样。为什么我这样问,因为我将图像文件夹中的一些图像引用(链接)到CSS文件夹中的.css文件中,并且还将脚本文件夹中的自定义JavaScript文件引用到.html文件中(显然使用标记) Visual Studio Project,所以我想如果我不在客户端维护相同的层次结构(一旦所有文件都被解压缩并提取到客户端的本地文件系统)那么浏览器就不可能在客户端脱机时正确地向客户端显示视图(.html文件)。这就是我在客户端上尝试处理这些下载文件的原因。
现在第二个问题是如何以编程方式将这些文件压缩成一个.zip文件,以便.zip文件中的文件夹和子文件夹的层次结构保持不变。我看过很多文章/教程,stackoverflow帖子和ZipFile api以及DOTNETZip api,但这些都没有描述如何将各种文件压缩成一个zip文件并在.zip文件中维护相同的文件夹和子文件夹层次结构,因为它是在Visual Studio中。
我不熟悉这个概念,即将文件压缩并将其提供给移动客户端,因此我不确定我的问题是对的还是存在替代方法来返回zip文件然后解压缩并在客户端提取它。
答案 0 :(得分:0)
1 - 是的,一个zip文件是要走的路。 2 - DotNetZip支持这种情况。 Check it out
using (ZipFile zip = new ZipFile())
{
zip.AddDirectory(@"MyDocuments\ProjectX", "ProjectX");
zip.Comment = "This zip was created at " + System.DateTime.Now.ToString("G") ;
zip.Save(zipFileToCreate);
}