Page d'Accueil

.NET support  des fichiers

 

Introduction

Le principal support d'un fichier comme objet est fourni par une classe .NET Framework appelée File. Cette classe statique est équipée de divers types de méthodes ( statiques) pour créer, sauvegarser, ouvrir, copier, déplacer, supprimer, ou vérifier l'existence d'un fichier.

L'existence d'un fichier

Une des opérations valables que la classe File peut effectuer est de vérifier l'existence du fichier que vous voulez utiliser. Par exemple, si vous créez un nouveau fichier, vous pouvez vouloir vous assurer qu'il n'existe pas déjà parce que si vous essayez de créer un fichier qui existe déjà, le compilateur peut d'abord supprimer le vieux fichier avant de créer le neuf.

Ceci pourrait mener à un résultat imprévisible, particulièrement parce qu'un tel fichier n'est pas envoyé à la corbeille. D'un autre côté, si vous essayez d'ouvrir un fichier, vous devriez d'abord vous assurer que le fichier existe, autrement le compilateur ne pourra pas ouvrir un fichier qu'il ne peut pas trouver.

Pour vérifier l'existence d'un fichier, la classe file fournit la méthode Exists. Sa syntaxe est:

public static bool Exists(string path);

Si vous fournissez seulement le nom du fichier, le compilateur le vérifierait dans le dossier de l'application. Si vous fournissez le chemin du fichier, le compilateur vérifierait son unité de disque, ses dossiers et le fichier elle-même. Dans les deux cas, si le fichier existe, la méthode renvoie vrai. Si le compilateur ne peut pas trouver le fichier, la méthode renvoie faux. Il est important de savoir que si vous fournissiez un chemin complet au fichier, n'importe quelle erreur, même légère, produirait un résultat faux.

Étude pratiqueÉtude pratique : Vérification de l'existence d'un fichier

  1. Accédez au fichier IceScream.cs et changez le comme suit :
     
    using System;
    using System.IO;
    
    namespace IceCream3
    {
        delegate void Request();
    
        . . . No Change
            
    
            // This method is used to display a receipt to the user
            public void DisplayReceipt()
            {
                . . . No Change
            }
    
            public void SaveOrder()
            {
                string NameOfFile;
    
                Console.Write("Please enter your initials or the " +
                              "name we will use to remember your order: ");
                NameOfFile = Console.ReadLine();
    			
    	    if( File.Exists(NameOfFile) )
    	    {
    		char Answer;
    
    		Console.WriteLine("The file you entered exists already.");
    		Console.Write("Do you want to replace it(y/n)?" );
    		Answer = char.Parse(Console.ReadLine());
    
    		if( Answer == 'y' || Answer == 'Y' )
    		    Console.WriteLine("The former order with the " +
                                          "same name will be replaced");
    		else if( Answer == 'n' || Answer == 'N' )
    		{
    		    Console.WriteLine("Please enter a name we will " +
                                          "use to remember this order: ");
    		    NameOfFile = Console.ReadLine();
    		}
    		else
    		    Console.WriteLine("Invalid Answer - We will close");
    	
    		    return;
    		}
    		else
    	    	    Console.WriteLine("Great");
            }
    
            public void OpenOrder()
            {
                string NameOfFile;
    
                Console.Write("Please enter the name you previously " +
                              "gave to remember your order: ");
                NameOfFile = Console.ReadLine();
    
                if (File.Exists(NameOfFile))
                    Console.WriteLine("The file would have been opened");
                else
                    Console.WriteLine("The name you entered is not registered " +
                                      "in our previous orders");
            }
        }
    }
  2. Accédez au fichier Program.cs et changez le comme suit :
     
    using System;
    
    namespace IceCream3
    {
        class Program
        {
            static int Main(string[] args)
            {
                char answer = 'n';
                IceScream ic = new IceScream();
                Request process = new Request(ic.ProcessAnOrder);
    
                process();
    
                Console.Write("Do you want us to remember this " +
                              "order the next time you come to " +
                              "get your ice scream (y/n)? ");
                answer = char.Parse(Console.ReadLine());
    
                if (answer == 'y' || answer == 'Y')
                    ic.SaveOrder();
                else
                    Console.WriteLine("\nIt was nice serving you." + 
                                      "\nCome Again!!!\n");
    
                return 0;
            }
        }
    }
  3. Enregistrer le fichier
  4. compiler le et exécutez le

Création de fichier

En plus de vérifier l'existence d'un fichier, la classe File peut être utilisée pour créer un nouveau fichier. Pour soutenir cette opération, la classe Flie est équipée de la méthode create () qui est prise en charge dans deux versions comme suit :

public static FileStream Create(string path);
public static FileStream Create(string path, int buffersize);

Dans les deux cas, la méthode File.Create() renvoie une valeur stream, dans ce cas-ci une valeur FileStream. Comme la méthode File.Create() indique, elle prend le nom ou le chemin du fichier comme argument. Si vous savez ou voulez indiquer la taille, en bytes, du fichier, vous pouvez utiliser la deuxième version.

Pour fournir la même opération de création d'un fichier, vous pouvez utiliserla méthode Open()  de la classe File. Elle est prise en charge dans trois versions comme suit :

public static FileStream Open(
   string path,
   FileMode mode
);
public static FileStream Open(
   string path,
   FileMode mode,
   FileAccess access
);
public static FileStream Open(
   string path,
   FileMode mode,
   FileAccess access,
   FileShare share
);

Accéder à un fichier

Afin d'effectuer une opération sur un fichier, vous devez indiquer au logiciel d'exploitation comment procéder. Une des options est d'indiquer le type d'accès qui sera concédé au fichier. Cet accès est indiqué en utilisant l'agent recenseur FileAccess. Les membres de l'agent recenseur FileAccess sont :

  • FileAccess.Write : De nouvelles données peuvent être écrites sur le fichier
  • FileAccess.Read : Des données existantes peuvent être lues à partir du fichier
  • FileAccess.ReadWrite : Des données existantes peuvent être lues à partir du fichier et de nouvelles données seront écrites dans le fichier

Partage de fichier

Dans les postes de travail autonomes, une personne peut habituellement accéder et ouvrir un fichier puis effectuer les opérations nécessaires dessus. Dans des ordinateurs gérés en réseau, vous pouvez créer un fichier sur lequel les personnes différentes peuvent accéder en même temps ou vous pouvez faire qu'un fichier accède à un autre fichier pour rechercher l'information. Par exemple, supposer que vous créez une application pour restaurant de repas rapide qui a deux ou plusieurs postes de travail reliés et tous les postes de travail sauvegardent leurs les commandes des clients dans un fichier commun. Dans ce cas, vous devez vous assurer que chacun des ordinateurs peuvent accéder au fichier pour sauvegarder une commande. Un employé d'un de ces postes de travail doit également pouvoir ouvrir le fichier pour rechercher une commande d'un client pour n'importe quelle raison nécessaire. Vous pouvez également créer une situation où un fichier contient un inventaire des articles d'un magasin et un autre fichier qui contient les commandes de clients. Évidemment un fichier dépendrait des autres. Basé sur ceci, quand une opération doit être effectuée sur un fichier, vous pouvez devoir indiquer comment un fichier peut être partagé. Ceci est fait par l'agent recenseur FileShare.

Les valeurs de l'agent recenseur FileShare sont :

  • FileShare.Inheritable : Permet à une poignées de fichiers de transmettre à partir de ce fichier
  • FileShare.None : Le fichier ne peut pas être partagé
  • FileShare.Read : Le fichier peut être ouvert et lu
  • FileShare.Write : Le fichier peut être ouvert et écrit dedans
  • FileShare.ReadWrite : Le fichier peut être ouvert en écriture/lecture
 

Le mode d'un dossier

En plus de l'accès au fichier, une autre option que vous indiquerez très probablement au logiciel d'exploitation est désigné sous le nom de mode d'un fichier. On l'indique par l'agent recenseur FileMode. Les membres de l'agent recenseur FileMode sont :

  • FileMode.Append : Si le fichier existe déjà, les nouvelles données seront ajoutées à la fin. Si le fichier n'existe pas, il sera créé et les nouvelles données lui seront ajoutées
  • FileMode.Create : Si le fichier existe déjà, il sera supprimé et un nouveau fichier avec le même nom sera créé. Si le fichier n'existe pas, alors il sera créé
  • FileMode.CreateNew : Si le nouveau fichier existe déjà, le compilateur affichera une erreur. Si le fichier n'existe pas, il sera créé
  • FileMode.Open : Si le fichier existe, il sera ouvert. Si le fichier n'existe pas, une erreur serait affichée
  • FileMode.OpenOrCreate : Si le fichier existe déjà, il sera ouvert. Si le fichier n'existe pas, il sera créé
  • FileMode.Truncate : Si le fichier existe déjà, son contenu sera supprimé complètement mais le fichier sera gardé, vous permettant d'en écrire de nouvelles données. Si le fichier n'existe pas, une erreur serait affichée
  

Précédent Copyright © 2007, Yevol Suivant