Supprimer tous les fichiers d'un dossier [C#] - C#/.NET managed - Programmation
Marsh Posté le 20-12-2006 à 09:30:26
C'est bon j'ai trouvé la solution.
Merci quand même
Code :
|
Marsh Posté le 20-12-2006 à 09:34:10
remet le @ devant la ligne path, ou alors utilise \\ au lieu de \
un string, ça s'inisitlise avec string.Empty; jamais avec null.
le exepath, y'a plus propre pour le récupérer.
Code :
|
Enfin, File.Delete() n'accepte qu'un nom de fichier, pas un pattern de recherche.
Il faut faire comme ça :
Code :
|
Marsh Posté le 20-12-2006 à 12:24:02
MagicBuzz a écrit : |
Peux-tu développer stp ? Je viens de chercher vite fait mais n'est pas trouvé.
Ce que je sais c'est qu'il ne faut pas initialiser si pas nécessaire, qu'il vaut mieux utiliser string.Empty que "" et qu'il vaut mieux vérifier la longueur d'une chaîne plutôt que de la comparer à string.Empty.
Par contre je ne sais rien de la différence entre l'initialisation avec string.Empty ou null.
Merci d'avance
Marsh Posté le 20-12-2006 à 12:28:14
pikti a écrit : |
String.Empty = une chaine est créée, la référence existe, mais elle ne contient rien
null = pas de chaine créée, aucune référence, aucun objet
Marsh Posté le 20-12-2006 à 13:26:36
Harkonnen a écrit : String.Empty = une chaine est créée, la référence existe, mais elle ne contient rien |
et donc pourquoi initialiser à string.Empty est mieux qu'à null ?
Marsh Posté le 20-12-2006 à 13:47:30
parce que pour initialiser une chaine, faut déjà qu'elle existe
Marsh Posté le 20-12-2006 à 15:46:28
bein comprend toujours pas bien, doit être fatigué
edit: je veux dire je ne vois pas l'optimisation là-dedans
dans l'exemple ci-dessus l'initialisation à null ou autre ne sert d'ailleurs à rien, le mieux serait d'initialiser directement avec la bonne valeur
edit: ce qui est plus performant en .net 1.1 ou 2.0 (l'initialisation au moment de la déclaration plutôt que le faire en 2 fois comme ci-dessus)
Marsh Posté le 20-12-2006 à 19:46:19
pikti a écrit : bein comprend toujours pas bien, doit être fatigué |
c'est pas une question d'optimisation, c'est une question de propreté. je n'ai aucune info quand aux différences éventuelles de performance (ceci dit, le string.Empty ca effectivement créer une zone en mémoire, réutilisable par le GC alors qu'un null va retarder au plus tard possible la création de l'objet).
sinon, pour le coup du .Length() pour déterminer si tu as la chaîne vide, je ne suis pas convaincu.
en tout cas, le compilateur de VS 2005 n'est pas de cet avis : il préconise un == sur string.Empty quand on active les hints d'optimisation (feature de la version architect machin truc à 10000 ).
pour le coup de l'init à string.Empty(), idem, c'est le compilo qui me l'a dit, j'ai pas cherché à décortiquer les articles de 50 pages qu'il te donne comme raisons avec.
dans tous les cas, c'est bien plus propre.
à noter enfin que si tu fais ça :
String toto = null;
ça revient EXACTEMENT* à
String toto;
dans la mesure où si tu fais ça :
String toto = null;
if (test)
{
toto = "youpi";
}
if (toto.Length > 0)
{
...
}
Evec ton null t'as lair d'un con, tu plantes. donc tu dois modifier tous tes tests ensuite, afin de vérifier que la chaîne n'est pas égale à null.
*: "exactement" du point de vue de l'algo que je donne en exemple. il y a une grande différence entre une variable initialisée à null et une variable non initialisée du tout. sauf que ça plantera quand même quand on va vouloir l'appeler
Marsh Posté le 26-01-2007 à 15:47:54
MagicBuzz a écrit : |
fxCop qui est gratuit lui le dit
(et c'est .Length )
http://msdn2.microsoft.com/en-us/l [...] S.80).aspx
edit: lien corrigé
Marsh Posté le 26-01-2007 à 15:55:50
hmmmm ah ouais (ps; c'est pas le bon lien, mais c'est pas grave, j'ai trouvé l'article quand même )
Marsh Posté le 20-12-2006 à 08:56:33
Bonjour,
comment faire pour supprimer tous les fichiers d'un dossier en C# ?
J'ai essayé
Mais il me dit qu'il y a un caractère illégal dans le string