读书人

怎么读取ZIP包里的二级或更深层文件夹

发布时间: 2012-02-11 09:51:35 作者: rapoo

如何读取ZIP包里的二级或更深层文件夹中的资源?

C# code
WebClient wc = new WebClient();            wc.OpenReadCompleted += new OpenReadCompletedEventHandler(wc_OpenReadCompleted);            wc.DownloadProgressChanged += new DownloadProgressChangedEventHandler(wc_DownloadProgressChanged);            wc.DownloadStringCompleted += new DownloadStringCompletedEventHandler(wc_DownloadStringCompleted);            wc.OpenReadAsync(new Uri(@"demo.zip", UriKind.Relative), "demo.jpg");void wc_OpenReadCompleted(object sender, OpenReadCompletedEventArgs e)        {            String sURI = (e.UserState as String);            StreamResourceInfo sri = new StreamResourceInfo(e.Result, null);            StreamResourceInfo imageStream = Application.GetResourceStream(sri, new Uri(sURI, UriKind.Relative));            BitmapImage imgsrc = new BitmapImage();            imgsrc.SetSource(imageStream.Stream);            T_Image.Source = imgsrc;        }


上面这段代码,当ZIP里直接就是资源列表,不含二级文件夹的时候,可以正确读取所要的资源,可是一旦ZIP包里含二级目录或多级目录时,读取这些子目录里的资源好象就读不出来,/ \ 等都试过都读不出来,求解!!

[解决办法]
测试通过,代码没有问题,二级或多级文件夹下均能访问。
需要注意,读取zip中的资源文件,不需要添加/ \,例如zip包中包含一个Image/demo.jpg
只需要这样写即可得到
wc.OpenReadAsync(new Uri(@"demo.zip", UriKind.Relative), "Image/demo.jpg");

读书人网 >CAD教程

热点推荐