C# FileNotFoundException

PHPz
Libérer: 2024-09-03 15:20:57
original
968 Les gens l'ont consulté

Lors du traitement des fichiers d'entrée et de sortie en C#, diverses exceptions peuvent survenir, mais l'exception FileNotFoundException est levée lorsque nous tentons d'accéder à un fichier dans notre programme et que ce fichier n'existe pas ou est supprimé. Donc, fondamentalement, l'exception FileNotFound se produit lorsque nous avons une adresse vers un fichier dans notre système, mais lorsque nous exécutons le programme, le fichier que nous avons mentionné ou transmis est introuvable. Il peut y avoir plusieurs raisons pour lesquelles ce fichier n'est pas trouvé. Le fichier peut être supprimé de l'emplacement ou le nom du fichier a peut-être été modifié et ne correspond pas aux noms que nous avons mentionnés. Il est également possible que lorsque nous transmettons une mauvaise adresse et que lorsqu'elle atteint l'adresse, il n'y a pas de fichier et donc l'exception se produit.

Syntaxe :

Chaque méthode, classe ou exception a sa syntaxe standard.

En cas d'exception FileNotFound, la syntaxe standard est la suivante :

public class FileNotFoundException :System.IO.IOException
Copier après la connexion

L'exception FileNotFound fait partie de IOException, qui est héritée de SystemException, remontant jusqu'aux classes Exception et Object.

Comment fonctionne FileNotFoundException en C# ?

  • FileNotFoundException implémente le HRESULT COR_E_FILENOTFOUND, qui contient la valeur 0x80070002.
  • Cette exception FileNotFound se produit généralement lors des opérations d'entrée-sortie pour les fichiers.
  • Lorsque le code ne trouve pas le fichier, il crée une nouvelle instance de FileNotFoundException() avec sa chaîne de message, qui est un message défini par le système pour l'erreur.
  • Dans une variété de ces constructeurs, une chaîne peut être ajoutée, des informations contextuelles et un message d'erreur peuvent être affichés.
  • De plus, un autre constructeur peut fournir une référence à l'exception interne qui a provoqué cette exception.

Exemples d'exception C# FileNotFoundException

Vous trouverez ci-dessous les exemples mentionnés :

Exemple n°1

Code :

using System;
using System.IO;
class Program {
static void Main() {
try {
using (StreamReaderfilereader = new StreamReader("nofile.txt")) {
filereader.ReadToEnd();
}
}
catch (FileNotFoundException ex) {
Console.WriteLine(ex);
}
}
}
Copier après la connexion

Explication :

  • Nous avons simplement commencé par les fichiers système. System.IO est un fichier d'importation important ici, car nous effectuerons des opérations sur les entrées et sorties des fichiers. Ensuite, nous avons notre classe et notre méthode principale. Nous sommes déjà entrés dans notre bloc try catch afin d'intercepter l'exception. Nous avons ensuite notre classe StreamReader, qui se trouve dans l'espace de noms system.IO.
  • La classe StreamReader est utilisée pour lire un fichier texte. Il est facile à utiliser et offre de bonnes performances. Avec StreamReader, nous avons notre objet qui appelle le nofile.txt, qui comme nous le savons n'existe pas. Ensuite, nous avons la méthode ReadToEnd qui lira le fichier jusqu'à la fin, s'il est trouvé. Enfin, nous avons notre bloc catch, qui, bien sûr, au moment où nous parlons contient l'exception FileNotFound et lorsqu'il l'attrape, il sera imprimé dans l'instruction de sortie de la ligne suivante.
  • En cas d'exécution réussie du code ci-dessus, le résultat sera une exception : "Fichier introuvable...".

Sortie :

C# FileNotFoundException

Exemple n°2

Ici, nous allons exécuter le code similaire au code ci-dessus, mais sans aucun bloc try catch, ce sera un programme simple, où nous ne pouvons pas deviner ce qui pourrait exactement se passer mal.

Code :

using System.IO;
using System;
class Program {
static void Main() {
using (StreamReaderfilereader = new StreamReader("incorrectfilename.txt")) {
filereader.ReadToEnd();
}
}
}
Copier après la connexion

Explication :

  • Avec notre deuxième exemple, le code est presque similaire à celui de notre premier exemple, mais nous n'avons spécifiquement implémenté aucun moyen d'intercepter l'exception. Commencé avec le fichier système, puis notre classe et notre méthode principale. Ensuite, en passant à StreamReader, nous transmettons notre nom de fichier, qui est incorrect et dans la ligne suivante, nous essayons de lire le fichier jusqu'à la fin.
  • Mais nous n'avons pas essayé d'attraper ou d'identifier l'exception ici, c'est un scénario dans lequel nous pensons que le fichier existe et nous n'attendons donc aucune exception. Lors de l'exécution, il imprimera une exception non gérée et l'exception « System.IO.FileNotFoundException : fichier introuvable » sera levée.

Sortie :

C# FileNotFoundException

Et comme vous pouvez le voir, contrairement à notre exemple précédent, il s'agit d'une exception non gérée et le résultat est comme prévu.

Comment éviter FileNotFoundException en C# ?

Comme toute autre exception, cette exception FileNotFound peut être évitée. Parmi les moyens que nous pouvons utiliser pour éviter cette exception, la méthode File.Exists est recommandée. Lorsque nous ne savons pas si le fichier que nous transmettons en argument n'est pas disponible sur le lien source, il est préférable d'utiliser la méthode File.Exists. La méthode File.Exists est recommandée.

Exemple :

Nous utiliserons la méthode File.Exists dans le programme et verrons comment elle peut être utilisée davantage.

Code :

using System.IO;
using System;
class Program {
static void Main() {
bool ifexists = File.Exists("incorrectfilename.txt");
Console.WriteLine("\n "+ifexists);
}
}
Copier après la connexion

Explication :

  • Notre code ici est idéalement au cas où nous ne serions pas sûrs de l'existence du fichier que nous sommes sur le point d'utiliser. Il s'agit d'une implémentation simple, nous pouvons avoir un tel code dans des boucles où il vérifie les fichiers différents ou alternatifs et celui qui existe est sélectionné pour l'opération.
  • Nous avons la méthode File.Exists, où nous avons transmis le nom du fichier et vérifions si le fichier existe.
  • Maintenant, dans la ligne suivante, nous avons l'instruction print, qui imprimera une valeur booléenne, True ou False, basée sur l'existence du fichier. Notre fichier n'existe pas, il doit donc renvoyer un false.

Sortie :

C# FileNotFoundException

Conclusion

Pour conclure, l'exception FileNotFound provient de l'espace de noms du système IO de la classe d'objet. FileNotFoundException est responsable de se produire lorsque nous transmettons un fichier ou tentons d'exécuter des opérations d'entrée ou de sortie avec un fichier mais que le fichier n'existe pas. D'autres raisons peuvent être un nom de fichier incorrect ou un lien source incorrect. La méthode File Exists peut être utilisée pour éviter cette exception.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal