EFFACER LES RÉPERTOIRES TEMP ET CUSTOM

cs_merlin2000 Messages postés 2 Date d'inscription mardi 26 août 2003 Statut Membre Dernière intervention 17 janvier 2011 - 17 janv. 2011 à 15:40
fredatcs Messages postés 14 Date d'inscription mercredi 2 mars 2005 Statut Membre Dernière intervention 20 juillet 2010 - 27 janv. 2011 à 21:36
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/52734-effacer-les-repertoires-temp-et-custom

fredatcs Messages postés 14 Date d'inscription mercredi 2 mars 2005 Statut Membre Dernière intervention 20 juillet 2010
27 janv. 2011 à 21:36
Bonjour,
Je suis développeur C Sharp depuis peu donc je suis sur d'avoir des bad practices
merci pour les conseils
billou_13 Messages postés 860 Date d'inscription jeudi 4 mars 2004 Statut Membre Dernière intervention 19 août 2014 29
27 janv. 2011 à 11:43
Bonjour,

En plus des commentaires de merlin2000 et shenron666, j'ajouterai les remarques suivantes:
1. Pourquoi supprimer les fichiers du répertoire avant de supprimer le répertoire alors que la méthode Directory.Delete(string, bool) peut s'en charger: http://msdn.microsoft.com/fr-fr/library/fxeahc5f%28v=VS.80%29.aspx .

2. L'utilisation de la ligne:
if (e.ToString() == "System.UnauthorizedAccessException")
est plus que déconseillée. On pourrait même dire que c'est un "bad-practice".
Il faut préférer le code suivant:
catch(UnauthorizedAccessException ex)
{
// Ici pour unauthorized...
}
catch (Exception ex)
{
// Ici pour les autres types d'exception...
}

3. Ne pas nommer une fonction qui ne fait pas ce qu'elle dit. ie:
- "delete_repertoire" ne supprime pas le répertoire car elle le re-créé à la fin...
- "check_directory" créé le répertoire alors que ce n'est pas la traduction de check...
- etc...

4. Le mélange de français/anglais n'est pas des plus séduisant. Choisis une ligne de conduite et tiens là.

5. Pas mal de choses seraient aussi à revoir au niveau de la gestion des exceptions, de la sortie console des infos, etc...

Tout ceci empêche complétement la ré-utilisabilité de ce code.
fredatcs Messages postés 14 Date d'inscription mercredi 2 mars 2005 Statut Membre Dernière intervention 20 juillet 2010
18 janv. 2011 à 13:44
En effet un del c:\temp\*.* dans un fichier bat aurait suffit mais j'apprends le C sharp et cela ma donné une excuse.
Les experts en C sharp trouveront ma source inutile mais je pense que certains débutants apprécieront.
shenron666 Messages postés 229 Date d'inscription dimanche 14 septembre 2003 Statut Membre Dernière intervention 20 août 2014
18 janv. 2011 à 10:03
tout ça pour ça, ou comment utiliser un bazooka pour tuer une mouche
un simple fichier batch étant largement suffisant pour vider ces répertoires
fredatcs Messages postés 14 Date d'inscription mercredi 2 mars 2005 Statut Membre Dernière intervention 20 juillet 2010
17 janv. 2011 à 23:39
Bonjour Merlin,
merci pour ces remarques
1. moi je préfère hardcoder C:\temp
merci pour System.IO.Path.GetTempPath(), je ne connaissais pas

2. EtSousRépertoire c'est juste pour que ce soit plus lisible
en effet True est suffisant.

3. je crée le répertoire c:\temp car je ne sais pas comment tous les sous-répertoires de c:\temp sans effacer ce dernier.
si tu as une solution, je suis preneur.
cs_merlin2000 Messages postés 2 Date d'inscription mardi 26 août 2003 Statut Membre Dernière intervention 17 janvier 2011
17 janv. 2011 à 15:40
Pour ma part j'éviterais de HardCodé c:\Temp ou tempo ou autre chose.
J'opterais pour System.IO.Path.GetTempPath().

De plus. Il y a une utilisation d'une booleenne "EtSousrepertoire",Cette derniere est initialise à true, sans aucun mécanisme pour sette cette bool diféremment, Or je me pose la question à quoi sert cette variable ?

Et finalement Il y a une fonction qui verifie la presence du repertoire dans dans string, et si le repertoire est pas la le programme le cree. Or si je n'ai pas de C:\Temp je me retouve avec un... Pas nécessairement le fun comme concept.
Rejoignez-nous