0

我是 C# 新手,希望能得到一点帮助。

我有一个 Windows 控制台应用程序,它通过电子邮件发送日志并计划每小时运行一次。

我想要的是将这些日志(在通过电子邮件发送后)压缩到同一个文件夹中。IE。应用程序从中读取日志的文件夹。

到目前为止,这是我的代码的片段。

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(这是有道理的)。

如何更改创建的 zipfile 的位置。此外,我希望将单个日志替换为创建的一个 zip 文件。

4

2 回答 2

3

您可以将 zip 文件保存到用户文件夹中可用的任何特殊文件夹中。您可以使用以下代码行获取特殊文件夹的路径:

Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);

如果您想保存这些特殊文件夹以外的 zip 文件,则可能存在权限问题。

于 2013-10-21T04:16:36.617 回答
0

尝试使用目录保存它。

例如:

{
    string directory = @C:\Users*\Documents\
    zip.Save(directory + "mailedFiles.zip");
}

您还应该使用System.IO来获取目录,而不是对它们进行硬编码。

于 2013-10-21T04:01:32.063 回答