Vider le dossier Temp d'un profil [Résolu]

Signaler
Messages postés
30
Date d'inscription
mardi 28 février 2006
Statut
Membre
Dernière intervention
5 mars 2013
-
Messages postés
30
Date d'inscription
mardi 28 février 2006
Statut
Membre
Dernière intervention
5 mars 2013
-
Bonjour,

J'ai un script en vbscript qui permet de vider le contenu du répertoire Temp d'un profil sous windows xp/vista. J'aimerais en faire une version C#. Voici le script:

    Set fso = CreateObject("Scripting.FileSystemObject")
    Set WshShell = CreateObject("WScript.Shell")
    Set oFolder = fso.GetFolder(WshShell.ExpandEnvironmentStrings("%TEMP%"))

    On Error Resume next

    For Each oFile In oFolder.files
        fso.DeleteFile oFile
    Next

    For Each oSubFolder In oFolder.SubFolders
        Call KillSubFolders (oSubFolder)
    Next

    MsgBox "Nettoyage Terminé"

    Sub KillSubFolders (SubPath)
           fso.DeleteFolder SubPath
    End Sub

Relativement simple mais efficace. Je sais que je dois me servir de Environment.ExpandEnvironmentVariables("%temp%"); pour obtenir mon chemin d'accès de TEMP.

Mon problème se situe pour définir l'objet Fichier/Dossier et le ForEach par la suite. Quelqu'un pourrait m'éclairer ?

P.S. : Oui j'ai cherché sur Google mais sans succès. Donc je voudrais de l'aide s.v.p.
A voir également:

3 réponses

Messages postés
860
Date d'inscription
jeudi 4 mars 2004
Statut
Membre
Dernière intervention
19 août 2014
22
Cependant, ne fais pas directement le Directory.Delete(...) sur ton répertoire "temp" car tu risquerai de la supprimer lui aussi.

Il faut donc que tu fasses comme ton algo mais en C#:

DirectoryInfo dir = new DirectoryInfo(Environment.ExpandEnvironmentVariables("%temp%"));

foreach (FileInfo curFile in dir.GetFiles())
{
curFile.Delete();
}

foreach (DirectoryInfo curDir in dir.GetDirectories())
{
curDir.Delete(true);
}

MessageBox.Show("Nettoyage Terminé");


Bonne journée,


Billou_13
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
34
En .net, il suffit tout simplement d'utiliser la méthode suivante :

Directory.Delete( path, true );

http://msdn.microsoft.com/fr-fr/library/62t64db3.aspx

Sébastien FERRAND (blog)
Consultant Sénior
[Microsoft Visual C# MVP]
Messages postés
30
Date d'inscription
mardi 28 février 2006
Statut
Membre
Dernière intervention
5 mars 2013

merci beaucoup. C'est le petit coup de pouce que je recherchais!