Souliabdo
Messages postés186Date d'inscriptionmercredi 14 mars 2007StatutMembreDernière intervention11 avril 2011
-
17 août 2009 à 12:27
billou_13
Messages postés860Date d'inscriptionjeudi 4 mars 2004StatutMembreDernière intervention19 août 2014
-
24 août 2009 à 11:19
Bonjour,
Je voudrais stocker un fichier dans un package que j'ai créé dans mon application (clique droit sur le projet=>ajouter =>Nouveau Dossier)
J'ai essayé avec :
1)FileStream stream = new FileStream("/MyNewRep/MyNewFile.xml", FileMode.Create);
2) Uri ResUri = new Uri("/MyNewRep/MyNewFile.xml", UriKind.Relative);
FileStream stream = new FileStream(ResUri.AbsolutePath+ "/MyNewFile.xml, FileMode.Create);
Ca ne marche pas
une idée s'il vous plaît
merci pour votre aide
billou_13
Messages postés860Date d'inscriptionjeudi 4 mars 2004StatutMembreDernière intervention19 août 201429 21 août 2009 à 09:21
Bonjour,
Si je comprend bien ton message, tu développes un site en ASP.Net (C#).
Tu dois donc résoudre le chemin de ton fichier afin de le créer au bon endroit.
Il te faut utiliser la fonction Server.MapPath. Ce qui te donne le code suivant:
FileStream stream = new FileStream(Server.MapPath("~/MyNewRep/MyNewFile.xml"), FileMode.Create);
Essayes avec ceci et tiens nous au courant,
Bonne journée,
Billou_13
Bask En Force
--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
Souliabdo
Messages postés186Date d'inscriptionmercredi 14 mars 2007StatutMembreDernière intervention11 avril 20112 21 août 2009 à 09:36
Merci pour ta réponse,
Je développe plutôt une application winform, mon application contient plusieurs dossiers (package)
Quand je créé un nouveau dossier dans mon application (clique droit sur le projet=>ajouter =>Nouveau Dossier) je vaudrais connaître comment accéder à ce nouveau dossier à partir de mon code
billou_13
Messages postés860Date d'inscriptionjeudi 4 mars 2004StatutMembreDernière intervention19 août 201429 21 août 2009 à 09:51
Au temps pour moi !
Qd j'ai vu Uri, j'ai de suite pensé à un site Asp.Net. Ce que je t'ai dit n'est donc pas pertinent.
Tes tests ne doivent donc pas marcher car le dossier n'existe pas dans le répertoire de sortie.
A voir: System.IO.FileStream.
Le simple ajout du dossier dans ton projet ne suffit pas car le répertoire n'est pas généré en sortie (.\bin\debug).
Ceci expliquerai pourquoi ton test n'est pas concluant. Tu dois surement obtenir une exception de type "DirectoryNotFoundException".
Alors, je ne sais pas comment obliger la création de ce répertoire en sortie (mis à part en codant avec le Directory.CreateDirectory).
Ou sinon, en mettant ton fichier "MyNewFile.xml" dans ton projet et en "settant" la propriété "Copy to output directory" à "Copy always" (ou "Copy if newer").
Ensuite, ta création de fichier devrait fonctionner.
PS: à moins qu'il existe un méthode qui créé le répertoire du fichier s'il n'existe pas.
Billou_13
Bask En Force
--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
Souliabdo
Messages postés186Date d'inscriptionmercredi 14 mars 2007StatutMembreDernière intervention11 avril 20112 21 août 2009 à 10:19
J'ai essayé de faire un truc comme ca :
String Parentpath = Application.StartupPath;
Parentpath = Parentpath.Substring(0, Parentpath.IndexOf("\\bin\\Release")); //Monter dans l'arborescence pour ce positionné sur le répertoire parant(de tous le projet et pas le rep de l'exe) .
Puis je cree mon dossier tmp (clique droit sur le projet=>ajouter =>Nouveau Dossier)
Puis pour accéder à mon nouveau dossier tmp je fais
Parentpath + "\\Tmp\" +Myfile.ext
Ça marché mais je saispas si c'est la bonne solutuon ou pas
Vous n’avez pas trouvé la réponse que vous recherchez ?
billou_13
Messages postés860Date d'inscriptionjeudi 4 mars 2004StatutMembreDernière intervention19 août 201429 21 août 2009 à 10:33
Re,
Tu n'as pas besoin de récupérer le path: Application.StartupPath car ton exe est déjà dedans et tu peux travailler en chemin relatif.
Il te faut juste créer le répertoire s'il n'existe pas.
if(!Directory.Exists("MyNewRep"))
{
Directory.CreateDirectory("MyNewRep");
}
Puis tu pourras créer le fichier:
FileStream stream = new FileStream("MyNewRep/MyNewFile.xml", FileMode.Create);
Voila tout,
Billou_13
Bask En Force
--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
Souliabdo
Messages postés186Date d'inscriptionmercredi 14 mars 2007StatutMembreDernière intervention11 avril 20112 21 août 2009 à 10:39
Mais ca va le crée dans le dossier de l'exe Myproject/bin/release ce que je ne veux pas faire
C pour celaque je fais
Parentpath = Parentpath.Substring(0,Parentpath.IndexOf("\\bin\\Release"));
Pour sortir du rep là où il ya l'exe et se positionner su la racine :
Myproject
donc parent path contient maintenant Myproject que je le concatene avec MyNewRep
Parentpath + "\\MyNewRep\" +Myfile.ext
billou_13
Messages postés860Date d'inscriptionjeudi 4 mars 2004StatutMembreDernière intervention19 août 201429 21 août 2009 à 10:43
Oui, sauf que lorsque tu déploieras ton application, elle ne sera pas dans un dossier "bin\Release" mais dans le dossier d'installation.
C'est pourquoi les fichiers créés doivent généralement se trouver:
- dans le répertoire et sous-répertoire de l'exe
- dans "Mes documents"
- dans le répertoire Temporaire de l'utilisateur (User data)
- ou dans un répertoire demandé à l'utilisateur lors de la génération du fichier
Enfin, c'est toi qui vois mais je ne vois pas l'intérêt d'une telle action :)
Billou_13
Bask En Force
--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
C'est pourquoi je te conseille d'utiliser d'autres répertoires (comme je t'ai cité dans le commentaire précédent).
Ou sinon, tu peux mettre le dossier écrit en dur dans le fichier de configuration (app.config).
Comme cela, tu pourras modifier facilement le répertoire selon l'utilisateur.
Billou_13
Bask En Force
--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
Souliabdo
Messages postés186Date d'inscriptionmercredi 14 mars 2007StatutMembreDernière intervention11 avril 20112 21 août 2009 à 14:41
"si tu ne fais pas de projet de setup"
Peux-tu m?expliquer s'il te plaît comment faire un projet de setup
Car j'ai essayé de déployé mon application sur le serveur en cliquant droit sur le projet déployé, j'ai spécifié le chemin de déploiements
Sauf que quand je modifier le fichier ?exe.config il ne prend pas en compte la nouvelle chaine de connexion que j'ai modifié
--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
Souliabdo
Messages postés186Date d'inscriptionmercredi 14 mars 2007StatutMembreDernière intervention11 avril 20112 21 août 2009 à 15:27
Merci pour les liens !
En fait je travail en VS 2008 c#
Le projet de déploiement je le créé à part ou je l'ajoute à mon application,
Car j'ai fait cic droit sur ma solution =>ajouter nouveau projet, il me propose pas le type projet de déploiement et configuration
Merci de m?apporter quelques éclaircissements
merci pour votre aide
billou_13
Messages postés860Date d'inscriptionjeudi 4 mars 2004StatutMembreDernière intervention19 août 201429 21 août 2009 à 15:34
C'est toi qui voit
Billou_13
Bask En Force
--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
billou_13
Messages postés860Date d'inscriptionjeudi 4 mars 2004StatutMembreDernière intervention19 août 201429 21 août 2009 à 15:43
Ah dsl, j'avais pas tout lu
Si tu n'as pas le type de projet setup, c'est qu'il n'existe pas dans ta version de Visual Studio (peut-être une version express, non ?).
Billou_13
Bask En Force
--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------
Souliabdo
Messages postés186Date d'inscriptionmercredi 14 mars 2007StatutMembreDernière intervention11 avril 20112 24 août 2009 à 11:14
Bonjour
J'ai crée un répertoire dans le dossier de l'exe de l'application
Dans ce répertoire après avoir mettre un fichier je demande à un processus de me l'ouvrir
process.StartInfo.FileName = "UserData/tmp/" +MyFileName
lors de l'execusion il genere l'exeption FileNotFound
est que je doit passe au process.StartInfo.FileName le chemin absolu du fichier à ouvrir
tel que Application.StartupPath+"UserData/tmp/" +MyFileName
merci
billou_13
Messages postés860Date d'inscriptionjeudi 4 mars 2004StatutMembreDernière intervention19 août 201429 24 août 2009 à 11:19
Bonjour,
Je n'aurais pas le temps de me pencher sur ta question. Je te conseille de poser cette question dans un nouveau sujet.
Bonne journée,
Billou_13
Bask En Force
--------------------------------------------------------------------
Connaître la réponse est une chose, savoir pourquoi en est une autre
---------------------