src/EasyFrameWork/Zip/ZipFile.cs
(开头部分) 5KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
/* http://www.zkea.net/
* Copyright (c) ZKEASOFT. All rights reserved.
* http://www.zkea.net/licenses */
using System;
using System.Collections.Generic;
using System.IO;
using System.IO.Compression;
namespace Easy.Zip
{
public class ZipFile
{
private readonly List<KeyValuePair<string, FileInfo>> _singleFiles = new List<KeyValuePair<string, FileInfo>>();
private readonly List<DirectoryInfo> _directories = new List<DirectoryInfo>();
public void AddFile(FileInfo file)
{
_singleFiles.Add(new KeyValuePair<string, FileInfo>("\\", file));
}
public void AddFile(FileInfo file, string relativePath)
{
if (!relativePath.EndsWith("\\"))
{
relativePath += "\\";
}
_singleFiles.Add(new KeyValuePair<string, FileInfo>(relativePath, file));
}
public void AddDirectory(DirectoryInfo directory)
{
_directories.Add(directory);
}
private void CollectDirectory(string root, DirectoryInfo directory, ZipFileInfoCollection zipFiles)
{
foreach (FileInfo file in directory.GetFiles())
{
CollectFile(file.DirectoryName.Replace(root, "") + "\\", file, zipFiles);
}
foreach (DirectoryInfo dir in directory.GetDirectories())
{
CollectDirectory(root, dir, zipFiles);
}
}
private void CollectFile(string root, FileInfo file, ZipFileInfoCollection zipFiles)
{
using (FileStream originalFileStream = file.OpenRead())
{
if ((File.GetAttributes(file.FullName) &
FileAttributes.Hidden) != FileAttributes.Hidden & file.Extension != ".gz")
{
using (MemoryStream ms = new MemoryStream())
{
byte[] buffer = new byte[10240];
int count = 0;
while ((count = originalFileStream.Read(buffer, 0, buffer.Length)) > 0)
{
ms.Write(buffer, 0, count);
}
后面还有 82 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。