Meilleur auteur de réponses
chemin relatif d'un fichier

Question
-
Réponses
-
Bonjour. Cela devrait marcher mais une petite remarque en passant :
- le dossier courant peut être modifié dans les propriétés d'un raccourci
- un utilisateur n'a normalement pas le droit d'écrire dans le dossier de l'exe lorsque l'application est installée avec un setup
- le dialogue d'ouverture de fichiers peut probablement aussi changer le dossier en coursPour ces raisons à mon avis, se baser sur un chemin relatif au "dossier en cours" est relativement "fragile". Ma préférence personnelle est de toujours calculer un chemin absolu en me basant par exemple sur le dossier le plus approprié obtenu via http://msdn.microsoft.com/en-us/library/system.environment.getfolderpath.aspx. Si par exemple vous créez une variable actuellement avec http://msdn.microsoft.com/fr-fr/library/system.environment.currentdirectory.aspx, vous écrirez toujours dans le dossier courant mais il vous sera très facile de changer ensuite votre fusil d'épaule en modifiant juste une ligne de votre code...
Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".
- Modifié Patrice ScribeMVP, Moderator mardi 28 février 2012 17:55
- Proposé comme réponse Ciprian Duduiala mercredi 29 février 2012 07:37
- Marqué comme réponse Ciprian Duduiala lundi 5 mars 2012 07:45
-
\ est déjà la racine du disque. Cela devrait donc aller chercher le fichier javascript-xpath-latest-cmp.txt" à la racine du disque en cours. Tester par exemple :
static void Main(string[] args) { Console.WriteLine(System.IO.Path.GetFullPath(@"\..\myfile.txt")); Console.WriteLine(System.Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)); Console.Read(); }
Ce qui sort par exemple :
c:\myfile.txt (mais cela pourrait être un autre disque si l'exe est appelée avec un autre lecteur en cours)
c:\ProgramData (sous Windows 7)Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".
- Proposé comme réponse Ciprian Duduiala vendredi 2 mars 2012 07:43
- Marqué comme réponse Ciprian Duduiala lundi 5 mars 2012 07:45
Toutes les réponses
-
Bonjour,
Si votre fichier se trouve dans le répertoire \bin\Debug, il faut mettre le chemin relatif (à l'exécutable) suivant:
string text = System.IO.File.ReadAllText(@".\javascript-xpath-latest-cmp.txt");
Cordialement,
My blog
Whether you’re a construction worker, a forum moderator, or just someone that likes helping people. I think these guidelines can be helpful in keeping you helpful when being helpful.- Proposé comme réponse Patrice ScribeMVP, Moderator mardi 28 février 2012 17:45
- Non proposé comme réponse Ould MouradEditor mercredi 29 février 2012 08:46
-
Bonjour. Cela devrait marcher mais une petite remarque en passant :
- le dossier courant peut être modifié dans les propriétés d'un raccourci
- un utilisateur n'a normalement pas le droit d'écrire dans le dossier de l'exe lorsque l'application est installée avec un setup
- le dialogue d'ouverture de fichiers peut probablement aussi changer le dossier en coursPour ces raisons à mon avis, se baser sur un chemin relatif au "dossier en cours" est relativement "fragile". Ma préférence personnelle est de toujours calculer un chemin absolu en me basant par exemple sur le dossier le plus approprié obtenu via http://msdn.microsoft.com/en-us/library/system.environment.getfolderpath.aspx. Si par exemple vous créez une variable actuellement avec http://msdn.microsoft.com/fr-fr/library/system.environment.currentdirectory.aspx, vous écrirez toujours dans le dossier courant mais il vous sera très facile de changer ensuite votre fusil d'épaule en modifiant juste une ligne de votre code...
Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".
- Modifié Patrice ScribeMVP, Moderator mardi 28 février 2012 17:55
- Proposé comme réponse Ciprian Duduiala mercredi 29 février 2012 07:37
- Marqué comme réponse Ciprian Duduiala lundi 5 mars 2012 07:45
-
mon projet class library contient un fichier texte . il consiste en une BHO installable sur IE qui lit le contenu du fichier (qui est du javascript)et l'injecte dans le code source de any page IE . dans ma classe principale , je ne peux pas lire le contenu de ce fichier que lorsque je lui donne un chemin absolu .j'ai essayé avec
@".\javascript-xpath-latest-cmp.txt"
mais ça marche pas .
-
Bonjour,
Essayer avec les instruction suivantes :
var scriptLocation = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location); var scriptPath = System.IO.Path.Combine(scriptLocation, "javascript-xpath-latest-cmp.txt");
Cordialement.
-
-
-
-
\ est déjà la racine du disque. Cela devrait donc aller chercher le fichier javascript-xpath-latest-cmp.txt" à la racine du disque en cours. Tester par exemple :
static void Main(string[] args) { Console.WriteLine(System.IO.Path.GetFullPath(@"\..\myfile.txt")); Console.WriteLine(System.Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)); Console.Read(); }
Ce qui sort par exemple :
c:\myfile.txt (mais cela pourrait être un autre disque si l'exe est appelée avec un autre lecteur en cours)
c:\ProgramData (sous Windows 7)Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".
- Proposé comme réponse Ciprian Duduiala vendredi 2 mars 2012 07:43
- Marqué comme réponse Ciprian Duduiala lundi 5 mars 2012 07:45
-
Bonjour, Peythonet,
Est-ce que vous avez pu résoudre votre problème en utilisant les infos fournies par Patrice ? Merci de tenir la communauté informée sur la suite de vos démarches.
Bonne journée,
Cipri
Ciprian DUDUIALA, MSFT  
•Nous vous prions de considérer que dans le cadre de ce forum on n’offre pas de support technique et aucune garantie de la part de Microsoft ne peut être offerte.
-