Page d'Accueil

L'information du fichier

 

Introduction

Dans son niveau élevé de soutien du traitement de fichier, .NET Framework fournit la classe FileInfo. Cette classe est équipée pour manipuler tous les types d'opérations reliées aux données comprenant créer, copier, déplacer, renommer, ou supprimer un fichier. FileInfo est basé sur la classe FileSystemInfo qui fournit des informations sur les caractéristiques d'un fichier.

Étude pratique Étude pratique : Présentation de l'information d'un fichier

  1. Commencez Microsoft Visual C# et créez une application de console appelée WattsALoan1
  2. Tirer profit de la bibliothèque riche de visual basic, dans Explorateur de solution, sous WattsALoan1, droit-cliquez Références et cliquez Ajoutent Référence
  3. Dans la zone de dialogue Ajouter Référence, cliquez l'étiquette .NET et cliquez Microsoft.VisualBasic
     
    Adding a Visual Basic Assembly
  4. Cliquez OK
  5. Changez le fichier Program.cs comme suit :
     
    using System;
    using System.IO;
    
    namespace WattsALoan1
    {
        class Program
        {
            static int Main(string[] args)
            {
                string EmployerName, ApplicantName;
                string HomePhone, WorkPhone;
                double LoanAmount = 0.00D, InterestRate = 0.0D;
                double MonthlyPayment = 0.00D, Periods = 0D;
    
                Console.WriteLine(" -=- Car Loan Application -=-");
                Console.WriteLine("Enter the following pieces " +
                                  "of information\n");
                Console.WriteLine("Applicant Information");
                Console.Write("Full Name:     ");
                ApplicantName = Console.ReadLine();
                Console.Write("Employer Name: ");
                EmployerName = Console.ReadLine();
                Console.Write("Home Phone:    ");
                HomePhone = Console.ReadLine();
                Console.Write("Work Phone:    ");
                WorkPhone = Console.ReadLine();
                Console.WriteLine("Loan Estimation");
    
                try
                {
                    Console.Write("Amount of Loan: ");
                    LoanAmount = double.Parse(Console.ReadLine());
                }
                catch (FormatException)
                {
                    Console.WriteLine("Invalid Loan Amount");
                }
                try
                {
                    Console.Write("Interest Rate(0 to 100): ");
                    InterestRate = double.Parse(Console.ReadLine()) / 100;
                }
                catch (FormatException)
                {
                    Console.WriteLine("Invalid Interest Rate");
                }
                try
                {
                    Console.Write("Number of Months: ");
                    Periods = double.Parse(Console.ReadLine());
                }
                catch (FormatException)
                {
                    Console.WriteLine("Invalid Number of Months");
                }
    
                try
                {
                    MonthlyPayment =
                    Microsoft.VisualBasic.Financial.Pmt(InterestRate / 12,
                        Periods, -LoanAmount,
                        0, Microsoft.VisualBasic.DueDate.BegOfPeriod);
                }
                catch (ArgumentException)
                {
                    Console.WriteLine("Some invalid values were provided\n");
                }
    
                Console.WriteLine();
                Console.WriteLine(" -=-=-=-=-=-=-=-=-=-=-=-=-=-=");
                Console.WriteLine(" -=- Car Loan Application -=-");
                Console.WriteLine(" -=-=-=-=-=-=-=-=-=-=-=-=-=-=");
                Console.WriteLine("Applicant Information");
                Console.WriteLine("Full Name:     {0}", ApplicantName);
                Console.WriteLine("Employer Name: {0}", EmployerName);
                Console.WriteLine("Home Phone:    {0}", HomePhone);
                Console.WriteLine("Work Phone:    {0}", WorkPhone);
                Console.WriteLine("Loan Estimation");
                Console.WriteLine("Loan Amount:      {0:C}", LoanAmount);
                Console.WriteLine("Interest Rate:    {0:P}", InterestRate);
                Console.WriteLine("Number of Months: {0:F}", Periods);
                Console.WriteLine("Monthly Payment:  {0:C}\n", MonthlyPayment);
    
                return 0;
            }
        }
    }
  6. Exécutez l'application et l'examiner. Voici un exemple :
     
     -=- Car Loan Application -=-
    Enter the following pieces of information
    
    Applicant Information
    Full Name:     James Watts
    Employer Name: Wattson Enterprises
    Home Phone:    (202) 374-4738
    Work Phone:    (301) 894-4789
    Loan Estimation
    Amount of Loan: 12500
    Interest Rate(0 to 100): 10.25
    Number of Months: 48
    
     -=-=-=-=-=-=-=-=-=-=-=-=-=-=
     -=- Car Loan Application -=-
     -=-=-=-=-=-=-=-=-=-=-=-=-=-=
    Applicant Information
    Full Name:     James Watts
    Employer Name: Wattson Enterprises
    Home Phone:    (202) 374-4738
    Work Phone:    (301) 894-4789
    Loan Estimation
    Loan Amount:      $12,500.00
    Interest Rate:    10.25 %
    Number of Months: 48.00
    Monthly Payment:  $315.84
    Press any key to continue...
  7. Fermez la fenêtre DOS

Initialisation de fichier

La classe FileInfo est équipée d'un constructeur dont la syntaxe est :

public FileInfo(string fileName);

Ce constructeur prend comme argument le nom d'un fichier ou son chemin complet. Si vous fournissez seulement le nom du fichier, le compilateur considérerait le même répertoire de son projet. Voici un exemple :

FileInfo fleMembers = new FileInfo("First.txt");

Alternativement, si vous voulez, vous pouvez fournir n'importe quel répertoire valide auquel vous avez accès. Dans ce cas-ci, vous devriez fournir le chemin complet.

Création de fichier

Le constructeur FileInfo est la plupart du temps censé seulement indiquer que vous voulez utiliser un fichier, s'il existe déjà ou il serait créé. Basé sur ceci, si vous exécutez une application qui a seulement un objet FileInfo créé en utilisant le constructeur comme fait ci-dessus, rien ne se produirait.

Pour créer un fichier, vous avez diverses solutions de rechange. Si vous voulez créer un sans qu'on puisse écriture quelque chose dedans, ce qui signifie créer un fichier vide, vous pouvez appeler la méthode FileInfo.Create(). Sa syntaxe est :

public FileStream Create();

Cette méthode crée simplement un fichier vide. Voici un exemple d'appel :

FileInfo fleMembers = new FileInfo("First.txt");
fleMembers.Create();

La méthode FileInfo.Create() renvoie un objet FileStream. Vous pouvez utiliser cette valeur retournée pour écrire n'importe quel type de valeur dans le fichier, y compris le texte. Si vous voulez créer un fichier qui contient le texte, une alternative est d'appeler la méthode FileInfo.CreateText(). Sa syntaxe est :

public StreamWriter CreateText();

Cette méthode renvoie directement un objet StreamWriter. Vous pouvez utiliser cet objet retourné pour écrire le texte au fichier.

Existence de fichier

Quand vous appelez FileInfo.Create () ou la méthode FileInfo.CreateText(), si le fichier passé comme argument, ou comme fichier dans le chemin de l'argument existe déjà, il serait supprimé et un nouveau serait créé avec le même nom. Ceci peut causer la suppression d'un bon fichier. Par conséquent, avant de créer un fichier, vous pouvez devoir vérifier s'il existe déjà. Pour ce faire, vous pouvez vérifier la valeur de la propriété booléenne de FileInfo.Exists. Cette propriété contient une valeur vraie si le fichier existe déjà et elle contient une valeur fausse si le fichier n'existe pas ou n'existe pas dans le chemin.

Voici un exemple qui vérifie l'existence d'un fichier:

FileInfo fleMembers = new FileInfo("First.txt");
fleMembers.Create();

if( fleMembers.Exists == true )
	return;
 

Ecrire dans un fichier

Comme cité précédemment, la méthode FileInfo.Create () renvoie un objet FileStream. Vous pouvez utiliser ceci pour indiquer le type d'opération qui serait permis sur le fichier.

Pour écrire un texte normal dans un fichier, vous pouvez d'abord appeler la méthode FileInfo.CreateText (). Cette méthode renvoie un objet StreamWriter. La classe StreamWriter est basée sur la classe TextWriter  laquelle est équipé des méthodes write () et WriteLine () utilisées pour écrire des valeurs dans un fichier. La méthode write () écrit le texte sur une ligne et garde le point d'insersion sur la même ligne. La méthode WriteLine () écrit une ligne de texte et déplace le point d'insersion à la prochaine ligne.

Après inscription dans un fichier, vous devriez fermer l'objet StreamWriter pour libérer les ressources qu'il utilisaient pendant ses opérations.

Étude pratique Étude pratique : Ecrire dans un dossier

  1. Pour permettre à l'utilisateur de créer un nouvel employé, changez le fichier comme suit :
     
    using System;
    using System.IO;
    
    namespace WattsALoan2
    {
        class Program
        {
            private static void CreateNewEmployee()
            {
                string employeeNumber, employeeName;
                FileInfo fleEmployees = new FileInfo("Employees.txt");
                StreamWriter swrEmployees = fleEmployees.CreateText();
    
                try
                {
                    Console.WriteLine("Hiring New Employee");
                    Console.Write("Enter Employee Number as 00-000: ");
                    employeeNumber = Console.ReadLine();
                    Console.Write("Enter Employee Name: ");
                    employeeName = Console.ReadLine();
    
                    swrEmployees.WriteLine(employeeNumber);
                    swrEmployees.WriteLine(employeeName);
    
                }
                finally
                {
                    swrEmployees.Flush();
                    swrEmployees.Close();
                }
            }
    
            static int Main(string[] args)
            {
                try
                {
                    Console.Write("Do you want to hire a new " +
                                  "employee(0=No/1=Yes)? ");
                    int answer = int.Parse(Console.ReadLine());
    
                    if (answer == 1)
                        CreateNewEmployee();
                }
                catch (FormatException)
                {
                    Console.WriteLine("That was an invalid answer!\n");
                }
    
                string EmployerName, ApplicantName;
                string HomePhone, WorkPhone;
                double LoanAmount = 0.00D, InterestRate = 0.0D;
                double MonthlyPayment = 0.00D, Periods = 0D;
    
                . . . No Change
    
                return 0;
            }
        }
    }
  2. Exécutez l'application. Voici un exemple :
     
    Do you want to hire a new employee(0=No/1=Yes)? 1
    Hiring New Employee
    Enter Employee Number as 00-000: 44-228
    Enter Employee Name: Johnny Olney
  3. Fermez la fenêtre DOS

Apposer (ou joindre ) un fichier 

Vous avez pu déjà créé un fichier basé sur du texte et avoir écrit dedans. Si vous ouvrez un tel fichier et découvrez qu'une information est absente, vous pouvez ajouter cette information à la fin du fichier. Pour ce faire, vous pouvez appeler la méthode FileInfo.AppenText (). Sa syntaxe est :

public StreamWriter AppendText();

En appelant cette méthode, vous pouvez rechercher l'objet StreamWriter qu'elle renvoie, alors l'utilisation de cet objet permet d'ajouter une nouvelle information au dossier.

Étude pratique Étude pratique : Apposer un fichier

  1. Pour permettre à l'utilisateur d'ajouter plus d'employés au fichier qui contient leurs noms, changez le fichier comme suit :
     
    using System;
    using System.IO;
    
    namespace WattsALoan2
    {
        class Program
        {
            private static void CreateNewEmployee()
            {
                string employeeNumber, employeeName;
                FileInfo fleEmployees = new FileInfo("Employees.txt");
                StreamWriter swrEmployees = null;
    
                // If the file exists already, then add the new employee to it
                if (fleEmployees.Exists == true)
                    swrEmployees = fleEmployees.AppendText();
                else // Otherwise, create a new file
                    swrEmployees = fleEmployees.CreateText();
    
                try
                {
                    Console.WriteLine("Hiring New Employee");
                    Console.Write("Enter Employee Number as 00-000: ");
                    employeeNumber = Console.ReadLine();
                    Console.Write("Enter Employee Name: ");
                    employeeName = Console.ReadLine();
    
                    swrEmployees.WriteLine(employeeNumber);
                    swrEmployees.WriteLine(employeeName);
    
                }
                finally
                {
                    swrEmployees.Flush();
                    swrEmployees.Close();
                }
            }
    
            static int Main(string[] args)
            {
                . . . No Change
    
                return 0;
            }
        }
    }
  2. Exécutez l'application
  3. Dactylographiez pour créer un employé. Voici un exemple :
     
    Do you want to hire a new employee(0=No/1=Yes)? 1
    Hiring New Employee
    Enter Employee Number as 00-000: 72-604
    Enter Employee Name: Ernest Barzan
  4. Fermez la fenêtre  DOS
 

Précédent Copyright © 2007, Yevol Suivant