2010-02-18 12 views
4

Je veux lire un fichier texte de mon répertoire local, j'ai ajouté le fichier texte à ma solution C#, afin qu'il soit copié au déploiement .. mais comment l'ouvrir? Je l'ai cherché, mais tous les exemples supposent que j'ai un C: \ textfile.txt:Lire un fichier texte à partir du dossier local

J'ai essayé en train de lire le fichier

if (File.Exists("testfile.txt")) 
{ 
    return true; 
} 

Cela ne fonctionne pas. Puis j'ai essayé:

if (File.Exists(@"\\TextConsole\testfile.txt")) 
{ 
    return true; 
} 

mais toujours pas l'ouvrir .. des idées ??

+0

Le TestFile.txt est dans le répertoire de votre solution. Il n'est pas copié dans les répertoires de construction. Vous devriez connaître le chemin du fichier. –

Répondre

21

Tout simplement parce que vous l'avez ajouté à votre solution ne signifie pas que le fichier est placé dans votre répertoire de sortie de construction. Si vous voulez utiliser le chemin relatif, assurez-vous que votre TextFile est copié pendant la construction dans le répertoire de sortie. Pour ce faire, dans l'explorateur de solution aller aux propriétés du fichier texte et mis Copy to Output Directory à Always ou Copy if newer

Ensuite, vous pouvez utiliser

File.Open("textfile.txt"); 
+0

Super cela a fonctionné pour moi! –

+1

Assurez-vous que "copier dans le répertoire de sortie" est défini sur true dans le volet des propriétés de votre projet. Cela va copier les fichiers dans le répertoire bin où l'accès en lecture aura lieu. –

3

vous devez utiliser une des options suivantes après la vérification que vous avez fait

string path = @"\\TextConsole\testfile.txt"; 
if (File.Exists(path)) 
{ 
    FileStream fileStream = File.OpenRead(path); // or 
    TextReader textReader = File.OpenText(path); // or 
    StreamReader sreamReader = new StreamReader(path); 
} 
+0

il ne trouvera pas le fichier, car il n'existe pas dans son répertoire de construction. –

+0

À mes yeux, la méthode correcte serait 'chaîne txtPath = Path.Combine (Environment.CurrentDirectory," testfile.txt ");'. – Bobby

0

Si le fichier est en effet dans c:\textfile.txt, vous pouvez le trouver comme ça :

if (File.Exists(@"c:\testfile.txt")) 
{ 
    return true; 
} 

Mais vous devez utiliser Path.Combine pour construire un chemin de fichier imbriqué et DriveInfo pour travailler avec des détails d'entraînement.

2

Cet exemple lit le contenu d'un fichier texte, une ligne à la fois, dans une chaîne à l'aide de la méthode ReadLine de la classe StreamReader. Chaque ligne de texte est stockée dans la ligne de texte et affichée à l'écran.

int counter = 0; 
    string line; 

// Read the file and display it line by line. 
System.IO.StreamReader file = new System.IO.StreamReader("c:\\test.txt"); 

while((line = file.ReadLine()) != null) 
{ 
    Console.WriteLine (line); 
    counter++; 
} 

file.Close(); 

// Suspend the screen. 
Console.ReadLine(); 

référence http://msdn.microsoft.com/en-us/library/aa287535%28v=vs.71%29.aspx

Questions connexes