我是C#的新手,非常感谢你的帮助。
我有一个Windows控制台应用程序,可以通过电子邮件发送日志,并计划每小时运行一次。
我想要的是将这些日志(在通过电子邮件发送后)压缩到同一文件夹中。即。应用程序正在从中读取日志的文件夹。
到目前为止,这是我的代码。
string[] files = Directory.GetFiles(@"C:\Users\*\Documents\target", "*.txt");
try
{
using (Ionic.Zip.ZipFile zip = new Ionic.Zip.ZipFile()) //i'm using dotnetzip lib
{
foreach (var file in files)
{
Console.WriteLine(file);
sendEMail(file);
zip.AddFile(file,"logs");
}
zip.Save("mailedFiles.zip");
}
}
以上代码发生的事情是我能够创建一个zip文件但不能在应用程序读取的同一文件夹中。相反,它会在程序的位置创建zipfile(这很有意义)。
如何更改创建的zip文件的位置。此外,我希望将单个日志替换为创建的一个zip文件。
答案 0 :(得分:3)
您可以将zip文件保存到用户文件夹中的任何特殊文件夹。您可以使用以下代码行获取特殊文件夹的路径:
Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);
如果您想保存除这些特殊文件夹以外的zip文件,则可能存在权限问题。
答案 1 :(得分:0)
尝试使用目录保存。
例如:
{
string directory = @C:\Users*\Documents\
zip.Save(directory + "mailedFiles.zip");
}
您还应该使用System.IO
来获取目录而不是硬编码。