2017-07-06 1 views
1

J'ai beaucoup de journaux dans un dossier, je voudrais seulement saisir les fichiers qui ont aujourd'hui la date et les mettre dans le fichier zip.C# Ajouter Directory.GetFiles à Zip File

Voici mon code:

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); 
    } 
} 

Comment puis-je files la fermeture éclair?

+1

pas j'ai besoin pour que cela se produise dans 'foreach' Je reçois la liste des fichiers, que j'ai besoin maintenant je dois juste les ajouter au zip fichier. – Tony

+0

Je pense que c'est ce que vous voulez: https://stackoverflow.com/a/22339337/424129 - voir les commentaires ainsi –

Répondre

3

Donc ce que vous pouvez faire est de créer un dossier temporaire, puis ajoutez chaque fichier qui correspond à la date en elle. Une fois que vous a fait peut ZipFile.CreateFromDirectory et puis supprimez le dossier temporaire

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); 
0

Vous devez utiliser System.IO.Compression; et utiliser

ZipFile.CreateFromDirectory(myPath, zipPath); 
+0

cela va saisir tous les fichiers dans le répertoire, je veux seulement ceux spécifiques – Tony

+0

Probablement vous recherchez : https: //stackoverflow.com/questions/27550413/how-to-zip-selected-files-not-all-the-files-in-a-directory-in-c-sharp –

+0

Ceci est une solution différente. J'ai besoin de recréer tout mon programme – Tony