Поскольку я могу сжиматься в файле .zip и после удалять первоначальные файлы

У меня есть программа, которая называет хранившуюся процедуру, которая функционирует хорошо.

Результат этого, он дает мне 10 файлов с именем различных проектов.

То, что я пробую сделать, состоит в том, чтобы мочь сжимать эти 10 файлов и способствовать один.ZIP тому, чтобы он содержал эти файлы, и после смогли исчезать все 10 файлов.CSV первоначальные.

Как могло бы делать это?

Здесь - мой код:

List<string> projectName = new List<string>();
List<string> category = new List<string>();
List<string> Subcategory = new List<string>();

int count = xml.GetElementsByTagName("projectName").Count;

for (int i = 0; i < count; ++i)
{
    projectName.Add(xml.GetElementsByTagName("projectName")[i].InnerText);
    category.Add(xml.GetElementsByTagName("category")[i].InnerText);
    Subcategory.Add(xml.GetElementsByTagName("Subcategory")[i].InnerText);
}

for (int i = 0; i < count; ++i)
{
    string outCsvFile = string.Format(@"C:\\temp\\{0}.csv", category[i] + " " + Subcategory[i]);

    SqlCommand sqlCmd = new SqlCommand();
    sqlCmd.CommandType = CommandType.StoredProcedure;
    sqlCmd.Connection = conn;
    sqlCmd.CommandText = "testStoredProcedure";
    sqlCmd.Parameters.AddWithValue("@ProjectTitle", projectName[i]);
    sqlCmd.Parameters.AddWithValue("@Category", category[i]);
    sqlCmd.Parameters.AddWithValue("@SubCategory", Subcategory[i]);
    sqlCmd.Parameters.AddWithValue("@TaskType", "");
    sqlCmd.Parameters.AddWithValue("@TaskStatus", "");
    sqlCmd.Parameters.AddWithValue("@IsBaseLanguage", 1);
    sqlCmd.Parameters.AddWithValue("@RaterDemographics", "FirtName,LastName,Email,Adress");

    conn.Open();

    SqlDataReader reader = sqlCmd.ExecuteReader();
    using (StreamWriter file = new StreamWriter(outCsvFile))
    {
        List<string> items = new List<string>();
        for (int j = 0; j <= 5; j++)
        {
            items.Add(reader.GetName(j));
        }
        file.WriteLine("\"" + string.Join("\",\"", items) + "\"");


        while (reader.Read())
        {
            items = new List<string>();
            for (int j = 0; j <= 5; j++)
            {
                items.Add(reader[j].ToString());
            }
            file.WriteLine("\"" + string.Join("\",\"", items) + "\"");

        }

    }
    conn.Close();

}
1
задан 18.08.2016, 21:10
2 ответа

Чтобы мочь сжимать ты мог бы использовать классы, которые включает .net

CГіmo: Сжимать и извлекать архивы

все те с классом ZipFile, чтобы создавать zip

Однако тема - это как произвождение zip без того, чтобы bloquen архивы, для этого ты конечно был должен использовать достаточно добра using, от этой формы, когда ты закончишь вооружать zip, выйдя using, он освобожден, чтобы мочь удалять file

Сип Арчивес in C# 5.0 (.NET 4.5)

важно состоит в том, чтобы анализировать, как использует

 using (ZipArchive zipArchive =   ZipFile.Open(@"C:\Archive.zip", ZipArchiveMode.Read)){ ...

там этот using, который я комментирую для того, чтобы, закончив вооружать zip, были освобождены архивы, из этой формы ты сможешь удалять

0
ответ дан 24.11.2019, 13:37

DespuГ©s сжимания архивов раньше ты можешь добавлять loop, чтобы удалять их:

for (int i = 0; i < count; ++i)
{        
  System.IO.File.Delete(@"C:\\temp\\{0}.csv", category[i] + " " + Subcategory[i])
}
0
ответ дан 24.11.2019, 13:37