Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2308 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  Creer un ficher texte

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Creer un ficher texte

n°2284081
rahmoune
Posté le 23-06-2016 à 18:54:19  profilanswer
 

Bonjour,
je veux créer un fichier texte sur le disque dur c, ajouter du texte. Tous ça marche mais ce que je veux de plus, Si le fichier existe qu'il crée un deuxième. Par ce que maintenant, il ecrit dans le même fichier. Je veux qu'a chaque fois que je crée un , qu'il crée un nouveau. et est ce qu'il y a un moyen de laisser l'ordi ajouter une copie de plus, par exemple le premier s'appel text.txt, le deuxème devra être test1.txt.
Merci d'avance
 
Voilà mon code:
 
private string path = "C:\\Test\\test.txt";
if (!File.Exists(path))
            {
                StreamWriter writer = new StreamWriter(path);
                writer.Write("texte" );
                writer.Close();
            }
            else if (File.Exists(path))
            {
                StreamWriter writer = new StreamWriter(path, true);
                writer.Write("texte" );
                writer.Close();
            }

mood
Publicité
Posté le 23-06-2016 à 18:54:19  profilanswer
 

n°2284127
deliriumtr​emens
sic transit intestinal...
Posté le 24-06-2016 à 11:04:38  profilanswer
 

Un truc du genre devrait le faire.  
Pas très efficace si tu as une multitude de fichiers avec le même nom et un incrément.  
Si c'était le cas, tu aurais meilleur temps de récupérer l'incrément max existant, par exemple.
 
 

Code :
  1. var fullPath = @"C:\Test\test.txt";
  2. //un petit compteur pour pouvoir incrémenter le nom du fichier
  3. var count = 1;
  4. //récuper "test"
  5. var fileNameOnly = Path.GetFileNameWithoutExtension(fullPath);
  6. //récupérer ".txt"
  7. var extension = Path.GetExtension(fullPath);
  8. //récupérer "C:\\Test
  9. var path = Path.GetDirectoryName(fullPath);
  10. var newFullPath = fullPath;
  11. while (File.Exists(newFullPath))
  12. {
  13.       //si le ficher existe, on ajoute un incrément à "test".  
  14.        var tempFileName = string.Format("{0}({1})", fileNameOnly, count++);
  15.       //on reconstruit le path complet
  16.        newFullPath = Path.Combine(path, tempFileName + extension);
  17. }
  18. using (var writer = new StreamWriter(newFullPath))
  19. {
  20.      writer.Write("texte" );
  21. }


Message édité par deliriumtremens le 24-06-2016 à 11:06:56
n°2284143
rahmoune
Posté le 24-06-2016 à 14:06:10  profilanswer
 

Merci beaucoup deliriumtremens, ça marchait.

n°2285350
rahmoune
Posté le 18-07-2016 à 21:04:30  profilanswer
 

Bonjour,
 
La création du fichier ça marchait, mais aussi tôt je voulais chercher su texte a partir de .doc et .pdf, il y a une erreur sur le path disant(path' is an ambiguous reference between 'itextsharp.text.pdf.parser' and 'system.io.path'), ça donne des resolutions comme ajouter using itextsharp ect a coté, mais ça ne règle pas le problème. Ext ce qu'il y a un autre moyen de ne pas utiliser (Patch).
Merci d'adance.

n°2285368
TotalRecal​l
Posté le 19-07-2016 à 11:34:10  profilanswer
 

"Ext ce qu'il y a un autre moyen de ne pas utiliser (Patch). ". Non, à la place tu dois prendre 2 minutes pour essayer de comprendre ce qui se passe et le corriger.

 

Tu te retrouves avec deux classes (ou namespaces) qui s'appellent Path en même temps, donc le compilo ne sait pas duquel tu veux parler quand tu écris "Path.QuelqueChose".
Une solution est de lui donner l'info en écrivant par exemple :
"System.IO.Path.GetExtension(fullPath);"
Au lieu de "Path.GetExtension(fullPath);" et cie à chaque fois que tu as un truc qui commence par "Path."

 

Evidemment si ça n'est pas le bon, il faut utiliser l'autre possibilité, celle de itextsharp.

 

Et en plus tu as une instance d'objet qui s'appelle path qui peut aussi poser un souci si tu as une classe du même nom (ce qui n'est pas conforme aux pratiques c# mais ton message d'erreur mal tapé comme le reste de ton message laisse un doute) :
var path = Path.GetDirectoryName(fullPath);
renomme la en "directoryName" par exemple pour lever l'ambiguité.


Message édité par TotalRecall le 19-07-2016 à 11:36:15

---------------
Réalisation amplis classe D / T      Topic .Net - C# @ Prog
n°2285373
rahmoune
Posté le 19-07-2016 à 14:18:56  profilanswer
 

Merci beaucoup pour les informations, Elle étaient utiles.
Bonne journée,


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  Creer un ficher texte

 

Sujets relatifs
quand mouseover texte faire apparaitre une image en arrière planExcel 2010 Touche tab pour passer à la zone de texte suivante
Créer un formulaire sur mesureFormulaire ACCESS: créer bouton commande d'ouverture fichier bdd
Créer une url complète à partir d'un javascriptCréer une liste simplement chainée
Créer une liste simplement chainéeEviter les quotes quand j'insère du texte dans un tableau
Plus de sujets relatifs à : Creer un ficher texte


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR