Vider le dossier Temp d'un profil

Résolu
cs_iceman64b Messages postés 30 Date d'inscription mardi 28 février 2006 Statut Membre Dernière intervention 5 mars 2013 - 12 sept. 2008 à 03:54
cs_iceman64b Messages postés 30 Date d'inscription mardi 28 février 2006 Statut Membre Dernière intervention 5 mars 2013 - 12 sept. 2008 à 19:29
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.

3 réponses

billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
12 sept. 2008 à 09:57
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
3
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
12 sept. 2008 à 09:28
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]
0
cs_iceman64b Messages postés 30 Date d'inscription mardi 28 février 2006 Statut Membre Dernière intervention 5 mars 2013
12 sept. 2008 à 19:29
merci beaucoup. C'est le petit coup de pouce que je recherchais!
0
Rejoignez-nous