如何将文件添加到 .NET Core 中 zip 内的文件夹中?
Posted
技术标签:
【中文标题】如何将文件添加到 .NET Core 中 zip 内的文件夹中?【英文标题】:How to add a file to a folder inside a zip in .NET Core? 【发布时间】:2017-04-03 08:22:52 【问题描述】:我需要从一个文件夹中读取一个文件并将其放置在 .NET core 中的一个 zip 文件夹中。
我搜索了这个并找到了Adding files into a folder inside a zip file in c#,但这对我不起作用。
我的压缩文件代码是:
using (var fs = new FileStream("Test.zip", FileMode.Create))
using (var zip = new ZipArchive(fs, ZipArchiveMode.Create))
zip.CreateEntry("Folder1 /");
// working till here, Creates a zip and then creates Folder 1 inside Test.zip`
但我需要从“C:\Files”中读取一个文件并将其放在“Folder1”中。该文件被添加到 zip 但不在“Folder1”中。
【问题讨论】:
你遇到了什么错误? 我没有遇到任何错误。我尝试使用zip.CreateEntryFromFile(SourceFilePath,"FileName",CompressionLevel.Optimal);
但这是在 test.zip 中创建条目。但我需要将此条目添加到“Test.zip/Folder1”。
您能否分享您在 Folder1 中添加条目的代码
var zipPath = configuration.GetValue<string>(Constant.AppSettings.FileDownloadLocation); var fileToReadPath = configuration.GetValue<string>(Constant.AppSettings.TestFileLocation); using (ZipArchive archive = ZipFile.Open(zipPath, ZipArchiveMode.Update)) archive.CreateEntryFromFile(fileToReadPath, "NewEntry", CompressionLevel.Fastest);
我尝试过这样做
你在 fileToReadPath 中传递的路径
【参考方案1】:
这段代码似乎可以解决问题:
using System.IO;
using System.IO.Compression;
class Program
static void Main(string[] args)
string sourceFileName = "MyFile.txt";
string sourceFolder = @"C:\Files";
string zipFilePath = Path.Combine(@"C:\Files", "Test.zip");
using (ZipArchive archive = ZipFile.Open(zipFilePath, ZipArchiveMode.Create))
archive.CreateEntryFromFile(Path.Combine(sourceFolder, sourceFileName), $"Folder1\\sourceFileName");
【讨论】:
以上是关于如何将文件添加到 .NET Core 中 zip 内的文件夹中?的主要内容,如果未能解决你的问题,请参考以下文章
如何将 .net core Web API 项目添加到现有的 .NET core (3.1) Web Application 项目中?
如何在 ASP.net Core 中添加 js 和 css 文件?
如何在.net core mvc c#中提取格式.gz/.zip/.rar/.tar.gz