Historisation de fichier

Signaler
Messages postés
16
Date d'inscription
mercredi 17 mai 2006
Statut
Membre
Dernière intervention
5 juin 2008
-
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
-
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

Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
38
Salut,

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

Pour concatener des chaines utilise String.Format, pour concatener des chemins utilises System.IO.Path.
Messages postés
178
Date d'inscription
lundi 10 mars 2003
Statut
Membre
Dernière intervention
6 juillet 2009
4
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
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
92
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
*/
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
92
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
*/