Historisation de fichier

kikibodel Messages postés 16 Date d'inscription mercredi 17 mai 2006 Statut Membre Dernière intervention 5 juin 2008 - 15 mai 2008 à 16:54
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 - 17 mai 2008 à 21:52
Bonjour,

Je veux réaliser une historisation de fichiers en fonction de la date de ceux-ci.
Pour ça je souhaite créer pour chaque jour un nouveau fichier du type 15.05.2008.txt.
Ce fichier serait ranger avec tous les fichiers du mois de mai dans un répertoire appelé Mai 2008, et celui-ci serait également rangé dans un répertoire portant le nom de l'année 2008...

j'aimerais que mon prog crée un nouveau fichier chaque jour a cet emplacement :

"C://Propriétaire/Documents and Settings/Bureau/Historisation/+annee+/+mois+/+jour+.txt"

ou annee, mois, jour sont des variables...

Pour cele j'utilise une fonction File.CreateText(string path)
avec :

path = @"C:\Propriétaire\Documents and Settings\Bureau\Historisation"+annee+""+mois+""+jour+".txt";

Mais il ne veut pas le faire, surement à cause de mon " '+annee+'\'+mois+'\'+jour... "

Si quelqu'un peut m'aider, je le remercie d'avance...

4 réponses

Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
15 mai 2008 à 18:29
Salut,

As tu une exception ? un accès refusé ?

Pour concatener des chaines utilise String.Format, pour concatener des chemins utilises System.IO.Path.
0
Neo020585 Messages postés 178 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 6 juillet 2009 4
16 mai 2008 à 09:19
Bonjour,

path = @"C:\Propriétaire\Documents and Settings\Bureau\Historisation"+annee+""+mois+""+jour+".txt";

Cette ligne va créer le fichier :
C:\Propriétaire\Documents and Settings\Bureau\Historisation\2008\05\15.txt

Pour faire ce que tu explique dans ta question (créer un fichier 15.05.2008.txt) :
path = string.Format(@"C:\Propriétaire\Documents and Settings\Bureau\Historisation\{0}.{1}.{2}.txt", jour, mois, annee);

Cette ligne va créer le fichier :
C:\Propriétaire\Documents and Settings\Bureau\Historisation\15.05.2008.txt

sous réserve que tes variables jour, mois et année soient renseigné

"Une chose me laisse perplexe : Est-ce moi ou les autres qui sont fous ?" A. Einstein
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
17 mai 2008 à 21:49
Salut,

Justement, il veut aussi des répertoires.
Cependant String.Format est à garder, tout comme l'avait dit Lutinore.

Cette ligne n'est même pas censée compiler : path = @"C:\Propriétaire\Documents and Settings\Bureau\Historisation"+annee+""+mois+""+jour+".txt";
Le caractère d'échappement n'étant neutralisé par @ que dans la première partie et pas dans les 3 autres chaines litérales.

Bref, si j'ai bien saisi la totalité de la chose, et en partant du principe de annee, moi et jour sont des chaines de caractères correctement formatée, ça donnerais quelquechose de ce genre :

String rootPath = @"C:\Propriétaire\Documents and Settings\Bureau\Historisation";
...
String path = Path.Combine(rootPath, 
  String.Format(@"\{0}\{1}\{2}.{1}.{0}.txt", annee, mois, jour)
);

/*
coq
MVP Visual C#
CoqBlog
*/
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
17 mai 2008 à 21:52
Ha oui et pour rappel le répertoire dans lequel on veut créer le fichier doit exister, donc il faudra certainement décomposer l'opération précédente pour s'assurer que le répertoire cible existe, et le créer si nécessaire.

/*
coq
MVP Visual C#
CoqBlog
*/
0
Rejoignez-nous