fredatcs
Messages postés14Date d'inscriptionmercredi 2 mars 2005StatutMembreDernière intervention20 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és860Date d'inscriptionjeudi 4 mars 2004StatutMembreDernière intervention19 août 201429 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és14Date d'inscriptionmercredi 2 mars 2005StatutMembreDernière intervention20 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és229Date d'inscriptiondimanche 14 septembre 2003StatutMembreDernière intervention20 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és14Date d'inscriptionmercredi 2 mars 2005StatutMembreDernière intervention20 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és2Date d'inscriptionmardi 26 août 2003StatutMembreDernière intervention17 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.
27 janv. 2011 à 21:36
Je suis développeur C Sharp depuis peu donc je suis sur d'avoir des bad practices
merci pour les conseils
27 janv. 2011 à 11:43
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.
18 janv. 2011 à 13:44
Les experts en C sharp trouveront ma source inutile mais je pense que certains débutants apprécieront.
18 janv. 2011 à 10:03
un simple fichier batch étant largement suffisant pour vider ces répertoires
17 janv. 2011 à 23:39
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.
17 janv. 2011 à 15:40
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.