Maison  >  Article  >  développement back-end  >  Programme C# pour vérifier si un chemin est un répertoire ou un fichier

Programme C# pour vérifier si un chemin est un répertoire ou un fichier

WBOY
WBOYavant
2023-09-05 17:49:02584parcourir

C# 程序检查路径是目录还是文件

Présentation

Apprenons à écrire un programme C# pour vérifier si un chemin est un répertoire ou un fichier. Un répertoire, également appelé dossier, est un emplacement sur votre ordinateur où les fichiers peuvent être enregistrés. En plus des fichiers, les répertoires contiennent également d'autres répertoires ou raccourcis.

Un fichier est une collection de données sur un lecteur avec un identifiant unique et un chemin de répertoire. Lorsqu'un fichier est ouvert pour visualisation ou écriture, il est converti en flux. Un flux est simplement une séquence d'octets traversant un chemin de communication.

Fichiers et répertoires

Les fichiers sont de vrais fichiers de données, tandis que les répertoires sont des référentiels où les fichiers logiques sont placés sur le système. Pour gérer les fichiers et les répertoires, le Common Language Runtime (CLR) possède les classes File, FileInfo, Directory et DirectoryInfo dans l'espace de noms System.IO.

Pour gérer les répertoires en C#, nous pouvons utiliser Directory ou DirectoryInfo. La classe Directory est une classe statique avec des fonctions statiques pour gérer les répertoires. Cette classe ne peut pas être héritée. Les instances DirectoryInfo fournissent des informations sur un répertoire spécifique.

Un dossier a une classe de fichiers et une classe d'informations sur les fichiers. La classe File est utilisée pour effectuer des tâches courantes telles que copier, déplacer, renommer, créer, ouvrir, supprimer et ajouter à un seul fichier. La classe File peut également être utilisée pour obtenir et modifier les caractéristiques du fichier ou les informations date-heure liées à la création, à l'accès et à l'écriture du fichier. Les classes File et FileInfo ont les mêmes fonctionnalités de base.

La seule différence est que la classe File possède des méthodes internes pour gérer les fichiers, tandis que la classe FileInfo possède des méthodes d'instance pour gérer les fichiers.

Un bool statique public existe (String ? Path) ; utilisé pour vérifier si le fichier ou le répertoire existe. Le paramètre ici est-il une chaîne ? chemin. C'est le chemin à vérifier. Son type de retour est booléen. La raison pour laquelle cette fonction est booléenne est que lors de la vérification du chemin, il n'y a que deux résultats. Le fichier ou le répertoire existe ou n'existe pas, tout comme le mot-clé de la fonction. Il renvoie donc vrai si le répertoire ou le fichier existe et faux s'il n'existe pas ou si une erreur se produit lors de la tentative d'accès à l'adresse (comme une adresse corrompue ou plus).

Algorithme

L'algorithme ci-dessous donnera un processus étape par étape pour écrire un programme permettant de vérifier si un chemin donné est un répertoire ou un fichier.

Étape 1 - Nous devons d'abord déclarer une chaîne qui contient l'adresse où nous voulons vérifier s'il s'agit d'un fichier ou d'un répertoire

Étape 2 Ensuite, la vérification des conditions doit être effectuée, nous utilisons la méthode public static bool Exists (string? path);

Étape 3 C'est entièrement au programmeur de décider ce qu'il veut vérifier en premier. Veut-il vérifier le chemin d'un fichier ou d'un répertoire.

Étape 4 Si le chemin échoue aux deux vérifications, le résultat est un chemin invalide et est affiché sous forme de message.

Exemple

// For File.Exists, Directory.Exists
using System;
using System.IO;
class ttpt {
   static void Main() {
      string PathCheck = “D:/ipl”;

      // Here we check that the input path is a file
      if(File.Exists(PathCheck)) {
      
         // If the path provided is a file
         Console.WriteLine(“A file exists on this path”);
      }
      
      // Here we check if the path as input is a directory
      else if(Directory.Exists(PathCheck)) {
      
         // This input path is a directory
         Console.WriteLine(“A directory exists on this path”);
      }
      
      // If it is invalid i.e., it is neither directory nor a path
      else {
         Console.WriteLine("{0} is invalid. The input is neither a file nor a directory.", path);
      }
   }
}

Sortie

A file exists on this path

Le code ci-dessus vérifie si le chemin fourni est un fichier. Tout d'abord dans le code, nous déclarons une chaîne pour stocker l'adresse afin de vérifier s'il s'agit d'un fichier ou d'un répertoire. Ensuite, nous utilisons public static bool Exists(string?path); qui peut être utilisé avec les classes File et Directory pour vérifier si un fichier ou un répertoire existe en utilisant le mot-clé de classe correspondant. Cela peut être fait en utilisant des vérifications conditionnelles. Si les gens souhaitent effectuer une vérification par lots, ils peuvent transmettre un tableau d'adresses en paramètre en créant une classe. Vérifiez-les ensuite un par un. Comme public static bool Exists (string?path) renvoie une valeur booléenne, c'est pourquoi nous effectuons une vérification conditionnelle.

Les espaces de fin seront supprimés de la fin du paramètre path avant de vérifier que le répertoire existe.

La sensibilité à la casse des paramètres de chemin est liée au système de fichiers sur lequel le code est exécuté. Par exemple, NTFS (un système de fichiers Windows courant) n'est pas sensible à la casse, alors que les systèmes de fichiers Linux le sont.

Complexité temporelle

Dans l'algorithme après avoir déclaré la chaîne. public static bool Exists (string?path) ; Cette méthode est une méthode de retour booléenne. Parce qu'il effectue un seul appel directement à l'élément que nous recherchons, la complexité temporelle de cet algorithme est O(1).

Conclusion

Nous sommes donc arrivés à la fin de l'article et nous avons appris comment vérifier si le chemin fourni est un répertoire ou un fichier. Nous commençons par les définitions des fichiers et des répertoires, puis passons à la compréhension des différences entre les fichiers et les répertoires. Ensuite, nous avons découvert l'algorithme du programme et après cela, nous avons vu le programme pour vérifier le chemin. Nous espérons que cet article a amélioré votre compréhension de C#.

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer