Je suis novice en programmation C#. Je suis entrain de faire une application. J'essaye d’accéder à un fichier texte pour en récupérer le contenu. Là je fais un truc simple. J'affiche uniquement le contenu de mon fichier dans un messageBox. Le problème est que j'ai une exception du type System.IO.FileNotFoundException. Je sais que c'est un problème de droit mais je ne sais pas comment connaitre et accéder aux droits de mon application ?
Merci d'avance, voici la partie de mon code concernée.
private void GestionFichierTexte()
{
//Read the file
string text = System.IO.File.ReadAllText(@"C:\Users\m\Desktop\ExempleFichier");
at System.IO.File.InternalReadAllText(String path, Encoding encoding, Boolean checkHost)
at WindowsFormsApp1.Form1.GestionFichierTexte() in C:\Users\m\Source\Workspaces\Projets \WindowsFormsApp1\WindowsFormsApp1\Form1.cs:line 55
at WindowsFormsApp1.Form1.button2_Click(Object sender, EventArgs e) in C:\Users\m\Source\Workspaces\Projets \WindowsFormsApp1\WindowsFormsApp1\Form1.cs:line 66
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
at WindowsFormsApp1.Program.Main() in C:\Users\m\Source\Workspaces\Projets \WindowsFormsApp1\WindowsFormsApp1\Program.cs:line 18
Pour moi le problème est clair : le fichier n'existe pas. Es-tu sûr qu'il ne comporte pas d'extension ? (par défaut elles sont cachées dans Windows quand elles sont connues, donc tu peux ne pas l'avoir vue, par exemple si c'est en fait ExempleFichier.txt)
Pour moi le problème est clair : le fichier n'existe pas. Es-tu sûr qu'il ne comporte pas d'extension ? (par défaut elles sont cachées dans Windows quand elles sont connues, donc tu peux ne pas l'avoir vue, par exemple si c'est en fait ExempleFichier.txt)
Bonjour,
Merci pour ta réponse. Il s'agit effectivement d'un fichier txt. Je viens d'essayer en mettant l'extension mais cela ne fonctionne toujours pas
using System;
namespace Symbiose
{
class Program
{
// Main : point d'entrée
static void Main()
{
GestionFichierTexte();
}
void GestionFichierTexte()
{
//Read the file
string text = System.IO.File.ReadAllText(@"C:\Users\olivi\Desktop\ExempleFichier.txt");
Console.Write(text);
}
}
}
La sortie en console est bien le contenu du fichier.
using System;
namespace Symbiose
{
class Program
{
// Main : point d'entrée
static void Main()
{
GestionFichierTexte();
}
void GestionFichierTexte()
{
//Read the file
string text = System.IO.File.ReadAllText(@"C:\Users\olivi\Desktop\ExempleFichier.txt");
Console.Write(text);
}
}
}
La sortie en console est bien le contenu du fichier.
Avec la même erreur, c'est peut être mon paramétrage de Visual Studio qui pose problème
Ca me semblerait bizarre vu que tu as un chemin absolu, mais essaie en plaçant le fichier dans le répertoire de ton projet (là où tu compiles), et en l'incluant avec juste le chemin "ExempleFichier.txt" ; et si ça ne marche pas, essaie "./ExempleFichier.txt"
Ca me semblerait bizarre vu que tu as un chemin absolu, mais essaie en plaçant le fichier dans le répertoire de ton projet (là où tu compiles), et en l'incluant avec juste le chemin "ExempleFichier.txt" ; et si ça ne marche pas, essaie "./ExempleFichier.txt"
J'ai essayé tes deux dernières méthodes mais cela ne fonctionne toujours pas.
Place-le plutôt dans le dossier dans lequel se trouvent tes fichiers .cs je veux dire. Visiblement tu as un répertoire qui contient les fichiers configurant ton projet, et un sous-dossier contenant ce que toi tu fais de ton projet, c'est dans ce sous-répertoire qu'il faut mettre ton fichier. Et réessaie avec le code ci-dessus.
Je comprends pas ce qui cloche, désolé... (je débute en C#moi aussi ^^)
Si tu lances un nouveau projet, que tu fais un copier-coller du code que je t'ai donné (en modifiant bien évidemment ton chemin vers le fichier pour Users/m au lieu de Users/olivi), et que tu remets le fichier ExempleFichier.txt sur le bureau, qu'est-ce que tu obtiens ?
Ce n'est pas de cette manière qu'on ajoute un fichier dans une solution, ça doit se faire directement dans VS en spécifiant "toujours" ou "préserver nouveau" (quelque chose du genre) dans le champ "copier dans le répertoire" (quelque chose du genre bis) des propriétés du fichier. (Cela copie automatiquement le fichier dans le dossier de sortie -- bin/debug ou bin/release -- à côté de l'exécutable)
Mais effectivement l'erreur indique qu'il ne trouve pas le fichier et pas de problème de droit
PS : il y a le forum .NET qui est plus adapté pour avoir une réponse pertinente
Je comprends pas ce qui cloche, désolé... (je débute en C#moi aussi ^^)
Si tu lances un nouveau projet, que tu fais un copier-coller du code que je t'ai donné (en modifiant bien évidemment ton chemin vers le fichier pour Users/m au lieu de Users/olivi), et que tu remets le fichier ExempleFichier.txt sur le bureau, qu'est-ce que tu obtiens ?
Problème résolu. Je ne sais pas ce qui a changé au juste mais en tout cas maintenant le code il fonctionne. Merci
Ecoute j'en ai aucune idée, peut-être un problème de configuration de projet, je t'avoue que je code sans utiliser Visual Studio donc je fais tout en "brut" et je sais pas du tout comment se passe la création de projet.
Ecoute j'en ai aucune idée, peut-être un problème de configuration de projet, je t'avoue que je code sans utiliser Visual Studio donc je fais tout en "brut" et je sais pas du tout comment se passe la création de projet.
Bon courage pour la suite !
Merci pour ta disponibilité, à toi aussi
vanaur a écrit:
> Je ne sais pas ce qui a changé au juste mais en tout cas maintenant le code il fonctionne.
??
Serais-tu être un peu plus claire, moi ça me perturbe
Voici le code qui fonctionne
private void GestionFichierTexte()
{
//Read the file
string text = System.IO.File.ReadAllText(@"C:\Users\m\Desktop\ExempleFichier.txt");
MessageBox.Show(text);
}
Voici mon code qui fonctionne à présent et pour ceux qui en auront besoin.
Ce qui a changé c'est que tu as rajouté l'extension du fichier ".txt".
C# System.IO.FileNotFoundException
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Le meilleur moyen de prédire l'avenir, c'est de l'inventer | N'oubliez pas [résolu] et +1 | Excusez mon ôrtograffe, j'essaie de l'améliorer...
Le meilleur moyen de prédire l'avenir, c'est de l'inventer | N'oubliez pas [résolu] et +1 | Excusez mon ôrtograffe, j'essaie de l'améliorer...