c# 将 Directory.GetFiles 添加到 Zip 文件
Posted
技术标签:
【中文标题】c# 将 Directory.GetFiles 添加到 Zip 文件【英文标题】:c# Adding Directory.GetFiles to Zip File 【发布时间】:2017-07-06 18:14:29 【问题描述】:我在一个文件夹中有很多日志,我想只抓取具有今天日期的文件并将它们放入 zip 文件中。
这是我的代码:
static void Main(string[] args)
//Specify todays date
DateTime todaysDate = DateTime.Today;
//Create a zip file with the name logs + todays date
string zipPath = @"C:\Users\Desktop\ZIP\logs" + todaysDate.ToString("yyyyMMdd") + ".zip";
string myPath = @"C:\Users\Desktop\LOG SEARCH";
var files = System.IO.Directory.GetFiles(myPath, "*" + todaysDate.ToString("yyyyMMdd") + "*");
foreach (var file in files)
Console.WriteLine(file);
如何压缩files
?
【问题讨论】:
不,我需要在foreach
中发生这种情况,我正在获取文件列表,我现在需要将它们添加到 zip 文件中。
我认为这就是你想要的:***.com/a/22339337/424129 -- 也可以查看 cmets
【参考方案1】:
因此,您可以创建一个临时文件夹,然后在其中添加与当前日期匹配的每个文件。完成后您可以ZipFile.CreateFromDirectory
然后删除临时文件夹
DateTime todaysDate = DateTime.Today;
//Create a zip file with the name logs + todays date
string zipPath = @"C:\Users\Desktop\ZIP\logs" + todaysDate.ToString("yyyyMMdd") + ".zip";
string myPath = @"C:\Users\Desktop\LOG SEARCH";
string tempPath = @"C:\Users\Desktop\ZIP\logs" + todaysDate.ToString("yyyyMMdd");
var files = System.IO.Directory.GetFiles(myPath, "*" + todaysDate.ToString("yyyyMMdd") + "*");
Directory.CreateDirectory(tempPath);
foreach (var file in files)
File.Copy(file, tempPath + @"\" + System.IO.Path.GetFileName(file));
ZipFile.CreateFromDirectory(tempPath, zipPath);
Directory.Delete(tempPath, true);
【讨论】:
【参考方案2】:您需要使用 System.IO.Compression; 并使用
ZipFile.CreateFromDirectory(myPath, zipPath);
【讨论】:
这将抓取目录中的所有文件,我只想要特定的 您可能正在寻找:***.com/questions/27550413/… 这是一个不同的解决方案。我需要重新创建我的整个程序以上是关于c# 将 Directory.GetFiles 添加到 Zip 文件的主要内容,如果未能解决你的问题,请参考以下文章
C# Directory.GetFiles()获取文件时如果是根目录时有隐藏文件则报错的处理
C#控制台 directory.getfiles 找到指定路径下的指定类型文件
Directory.GetFiles:如何只获取文件名,而不是完整路径? [复制]