DetailPage-MSS-KB

Base de connaissances

Numéro d'article: 910356 - Dernière mise à jour: lundi 11 décembre 2006 - Version: 1.3

 
Pour une version de Microsoft Visual Basic .NET de cet article, voir 304427  (http://support.microsoft.com/kb/304427/ ) .
Pour une version de Visual C++ .NET de cet article, voir 307398  (http://support.microsoft.com/kb/307398/ ) .
Pour une version de Visual C# .NET de cet article, voir 304430  (http://support.microsoft.com/kb/304430/ ) .
Cet article fait référence à l'espace de noms System.IO bibliothèque de classes Microsoft .NET Framework.

Sommaire

INTRODUCTION

Cette étape par étape explique comment effectuer les opérations de fichier de base d'E / S dans Microsoft Visual C# 2005 Express Edition. Si vous débutez dans le Microsoft .NET Framework, vous constaterez que le modèle d'objet pour les opérations de fichier dans Microsoft .NET est semblable au modèle objet FileSystemObject est populaire avec de nombreux développeurs de Visual Studio 6.0. Pour faciliter la transition, les fonctionnalités décrites dans cet article sont basée sur l'article suivant de la base de connaissances Microsoft :
186118  (http://support.microsoft.com/kb/186118/ ) Comment faire pour utiliser FileSystemObject avec Visual Basic
Vous pouvez toujours utiliser l'objet FileSystemObject dans .NET. Comme l'objet FileSystemObject est un composant (Component Object Model), .NET nécessite que vous accéder à l'objet FileSystemObject via la couche interop. Si vous souhaitez utiliser un wrapper, .NET génère un wrapper pour le composant pour vous. Toutefois, les classes suivantes dans le .NET Framework offrent des fonctionnalités qui sont indisponibles lorsque vous utilisez l'objet FileSystemObject , sans la surcharge de la couche d'interopérabilité de base :
  • La classe file
  • La classe FileInfo
  • La classe d'annuaire
  • La classe DirectoryInfo
  • Autres classes associées

Configuration requise

La liste suivante met en évidence le matériel recommandé, logiciel infrastructure réseau et service packs dont vous avez besoin :
  • Microsoft Visual C# 2005 Express Edition ou Microsoft Visual Studio 2005

Opérations d'E / S demonstrated de fichier

Les exemples de code de cet article expliquent comment effectuer les opérations e / S de fichier simple. La section « exemple Step-by-step » explique comment créer un programme exemple qui illustre les opérations d'E / S de fichier suivantes :
  • Lire un fichier texte.
  • Écrire un fichier texte.
  • Permet d'afficher les informations de fichier.
  • Liste des lecteurs de disque.
  • Liste des dossiers.
  • Liste des fichiers.
note Prenez en compte si vous souhaitez utiliser directement les exemples de code suivants, les points suivants :
  • Vous devez inclure l'espace de noms System.IO comme suit.
    using System.IO;
  • Vous devez déclarer la variable windir% comme suit.
    string    winDir=System.Environment.GetEnvironmentVariable("windir");
  • Vous devez déclarer la fonction addListItem comme suit.
    private void addListItem(string value)
    {
    	this.listbox1.Items.Add(value);
    }
    note Au lieu de déclarer et à l'aide de la fonction addListItem , vous pouvez utiliser directement l'instruction suivante.
    this.listbox1.Items.Add(value);

Lire un fichier texte

L'exemple de code suivant utilise une classe StreamReader pour lire le fichier System.ini. Le contenu du fichier est ajouté à un contrôle zone de liste . Le bloc try... catch est utilisé pour notifier l'application si le fichier est vide. Il existe plusieurs moyens pour déterminer quand elle atteint la fin du fichier. Cet exemple de code utilise la méthode lire pour examiner la ligne suivante avant de lire it.
StreamReader reader = new StreamReader(winDir + "\\system.ini");
            try
            {
                do
                {
                    addListItem(reader.ReadLine());
                }
                while (reader.Peek() != -1);
            }

            catch
            {
                addListItem("File is empty.");
            }

            finally
            {
                reader.Close();
            }

Écrire un fichier texte

L'exemple de code suivant utilise une classe StreamWriter pour créer un fichier et d'écrire dans un fichier. Si vous disposez d'un fichier existant, vous pouvez ouvrir le fichier existant de la même manière
StreamWriter writer = new StreamWriter("c:\\KBTest.txt");
            writer.WriteLine("File created by using StreamWriter class.");
            writer.Close();
            this.listBox1.Items.Clear();
            addListItem("File written to C:\\KBTest.txt");

Afficher les informations de fichier

L'exemple de code suivant utilise un objet FileInfo pour accéder aux propriétés d'un fichier. Le fichier Notepad.exe est utilisé dans cet exemple de code. Les propriétés apparaissent dans un contrôle ListBox .
FileInfo FileProps = new FileInfo(winDir + "\\notepad.exe");
            addListItem("File Name = " + FileProps.FullName);
            addListItem("Creation Time = " + FileProps.CreationTime);
            addListItem("Last Access Time = " + FileProps.LastAccessTime);
            addListItem("Last Write Time = " + FileProps.LastWriteTime);
            addListItem("Size = " + FileProps.Length);
            FileProps = null;

Liste des lecteurs de disque

L'exemple de code suivant utilise la classe Directory et la classe lecteur pour récupérer une liste des lecteurs logiques sur un système. Dans cet exemple de code, les résultats s'affichent dans un contrôle ListBox .
string[] drives = Directory.GetLogicalDrives();
    foreach(string drive in drives)
    {
        addListItem(drive);
    }

Dossiers de liste

L'exemple de code suivant utilise la méthode GetDirectories de la classe d'annuaire pour récupérer une liste des dossiers.
string[] dirs = Directory.GetDirectories(winDir);
    foreach(string dir in dirs)
        {
            addListItem(dir);
        }

Fichiers de liste

L'exemple de code suivant utilise la méthode GetFiles de la classe d'annuaire pour récupérer une liste de fichiers.
string[] files = Directory.GetFiles(winDir);
            foreach (string fileName in files)
            {
                addListItem(fileName);
            }
différents problèmes peuvent se produire lorsque les utilisateurs tentez d'accéder aux fichiers. Les fichiers peuvent existe pas, ou les fichiers peuvent être utilisés. En outre, les utilisateurs ne possèdent autorisations sur les fichiers ou dossiers que leur tentez d'accéder. Vous devez considérer ces possibilités lorsque vous écrivez code et rendre les provisions pour gérer les exceptions peuvent être générées.

Exemple pas à pas

Pour créer un programme exemple qui illustre les opérations d'E / S de fichier simple, procédez comme suit :
  1. Dans Visual C# 2005 Express ou dans Visual Studio 2005, créez une nouvelle application Visual C# Windows qui est nommée WindowsApplication1. Par défaut, un formulaire est nommé Form1 est créé.
  2. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur Form1.cs , puis cliquez sur Afficher le code .
  3. Supprimer tout le code dans l'éditeur de code.
  4. Collez le code suivant dans l'Éditeur de code.
    using System;
    using System.IO;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    
    namespace WindowsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                this.button1.Text = "Read Text File";
                this.button2.Text = "Write Text File";
                this.button3.Text = "View File Information";
                this.button4.Text = "List Drives";
                this.button5.Text = "List Subfolders";
                this.button6.Text = "List Files";
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                // How to read a text file.
                // try...catch is to deal with a file that has a length of 0 bytes.
                this.listBox1.Items.Clear();
                StreamReader reader = new StreamReader(winDir + "\\system.ini");
                try
                {
                    do
                    {
                        addListItem(reader.ReadLine());
                    }
                    while (reader.Peek() != -1);
                }
    
                catch
                {
                    addListItem("File is empty.");
                }
    
                finally
                {
                    reader.Close();
                }
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
                // How to create and write to a text file.
                StreamWriter writer = new StreamWriter("c:\\KBTest.txt");
                writer.WriteLine("File created by using StreamWriter class.");
                writer.Close();
                this.listBox1.Items.Clear();
                addListItem("File written to C:\\KBTest.txt");
            }
    
            private void button3_Click(object sender, EventArgs e)
            {
                // How to retrieve file properties (example uses Notepad.exe).
                this.listBox1.Items.Clear();
                FileInfo FileProps = new FileInfo(winDir + "\\notepad.exe");
                addListItem("File Name = " + FileProps.FullName);
                addListItem("Creation Time = " + FileProps.CreationTime);
                addListItem("Last Access Time = " + FileProps.LastAccessTime);
                addListItem("Last Write Time = " + FileProps.LastWriteTime);
                addListItem("Size = " + FileProps.Length);
                FileProps = null;
            }
    
            private void button4_Click(object sender, EventArgs e)
            {
                // How to obtain a list of disk drives.
                this.listBox1.Items.Clear();
                string[] drives = Directory.GetLogicalDrives();
                foreach (string drive in drives)
                {
                    addListItem(drive);
                }
            }
    
            private void button5_Click(object sender, EventArgs e)
            {
                // How to obtain a list of folders.
                // Example uses Windows folder.
                this.listBox1.Items.Clear();
                string[] dirs = Directory.GetDirectories(winDir);
                foreach (string dir in dirs)
                {
                    addListItem(dir);
                }
            }
    
            private void button6_Click(object sender, EventArgs e)
            {
                // How to obtain a list of files.
                // Example uses Windows folder.
                this.listBox1.Items.Clear();
                string[] files = Directory.GetFiles(winDir);
                foreach (string fileName in files)
                {
                    addListItem(fileName);
                }
            }
        }
    }
    this.listBox1.Items.Clear() ; chaîne [] fichiers = Directory.GetFiles(winDir) ; foreach (chaîne fileName dans des fichiers) {addListItem(fileName);}}}}
  5. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur Form1.Designer.cs , puis cliquez sur Afficher le code .
  6. Supprimer tout le code dans l'éditeur de code.
  7. Collez le code suivant dans l'Éditeur de code. espace de noms
    namespace WindowsApplication1
    {
        partial class Form1
        {
            /// <summary>
            /// Required designer variable.
            /// </summary>
            private System.ComponentModel.IContainer components = null;
    
            private string winDir = System.Environment.GetEnvironmentVariable("windir");
    
            /// <summary>
            /// Clean up any resources that are being used.
            /// </summary>
            /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
            protected override void Dispose(bool disposing)
            {
                if (disposing && (components != null))
                {
                    components.Dispose();
                }
                base.Dispose(disposing);
            }
    
            private void addListItem(string value)
            {
                this.listBox1.Items.Add(value);
            }
    
            #region Windows Form Designer generated code
    
            /// <summary>
            /// Required method for designer support - do not modify
            /// the contents of this method with the code editor.
            /// </summary>
            private void InitializeComponent()
            {
                this.listBox1 = new System.Windows.Forms.ListBox();
                this.button1 = new System.Windows.Forms.Button();
                this.button2 = new System.Windows.Forms.Button();
                this.button3 = new System.Windows.Forms.Button();
                this.button4 = new System.Windows.Forms.Button();
                this.button5 = new System.Windows.Forms.Button();
                this.button6 = new System.Windows.Forms.Button();
                this.SuspendLayout();
                // 
                // listBox1
                // 
                this.listBox1.FormattingEnabled = true;
                this.listBox1.Location = new System.Drawing.Point(23, 24);
                this.listBox1.Name = "listBox1";
                this.listBox1.Size = new System.Drawing.Size(525, 251);
                this.listBox1.TabIndex = 0;
                // 
                // button1
                // 
                this.button1.Location = new System.Drawing.Point(23, 290);
                this.button1.Name = "button1";
                this.button1.Size = new System.Drawing.Size(171, 23);
                this.button1.TabIndex = 1;
                this.button1.Text = "button1";
                this.button1.UseVisualStyleBackColor = true;
                this.button1.Click += new System.EventHandler(this.button1_Click);
                // 
                // button2
                // 
                this.button2.Location = new System.Drawing.Point(23, 319);
                this.button2.Name = "button2";
                this.button2.Size = new System.Drawing.Size(171, 23);
                this.button2.TabIndex = 2;
                this.button2.Text = "button2";
                this.button2.UseVisualStyleBackColor = true;
                this.button2.Click += new System.EventHandler(this.button2_Click);
                // 
                // button3
                // 
                this.button3.Location = new System.Drawing.Point(200, 290);
                this.button3.Name = "button3";
                this.button3.Size = new System.Drawing.Size(171, 23);
                this.button3.TabIndex = 3;
                this.button3.Text = "button3";
                this.button3.UseVisualStyleBackColor = true;
                this.button3.Click += new System.EventHandler(this.button3_Click);
                // 
                // button4
                // 
                this.button4.Location = new System.Drawing.Point(200, 319);
                this.button4.Name = "button4";
                this.button4.Size = new System.Drawing.Size(171, 23);
                this.button4.TabIndex = 4;
                this.button4.Text = "button4";
                this.button4.UseVisualStyleBackColor = true;
                this.button4.Click += new System.EventHandler(this.button4_Click);
                // 
                // button5
                // 
                this.button5.Location = new System.Drawing.Point(377, 290);
                this.button5.Name = "button5";
                this.button5.Size = new System.Drawing.Size(171, 23);
                this.button5.TabIndex = 5;
                this.button5.Text = "button5";
                this.button5.UseVisualStyleBackColor = true;
                this.button5.Click += new System.EventHandler(this.button5_Click);
                // 
                // button6
                // 
                this.button6.Location = new System.Drawing.Point(377, 319);
                this.button6.Name = "button6";
                this.button6.Size = new System.Drawing.Size(171, 23);
                this.button6.TabIndex = 6;
                this.button6.Text = "button6";
                this.button6.UseVisualStyleBackColor = true;
                this.button6.Click += new System.EventHandler(this.button6_Click);
                // 
                // Form1
                // 
                this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
                this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
                this.ClientSize = new System.Drawing.Size(580, 400);
                this.Controls.Add(this.button6);
                this.Controls.Add(this.button5);
                this.Controls.Add(this.button4);
                this.Controls.Add(this.button3);
                this.Controls.Add(this.button2);
                this.Controls.Add(this.button1);
                this.Controls.Add(this.listBox1);
                this.Name = "Form1";
                this.Text = "Form1";
                this.Load += new System.EventHandler(this.Form1_Load);
                this.ResumeLayout(false);
    
            }
    
            #endregion
    
            private System.Windows.Forms.ListBox listBox1;
            private System.Windows.Forms.Button button1;
            private System.Windows.Forms.Button button2;
            private System.Windows.Forms.Button button3;
            private System.Windows.Forms.Button button4;
            private System.Windows.Forms.Button button5;
            private System.Windows.Forms.Button button6;
        }
    }
  8. Appuyez sur F5 pour générer et exécuter l'application.
  9. Cliquez sur les boutons pour afficher les différentes actions.
note Par défaut, Visual C# 2005 Express Edition ou Visual Studio 2005 ajoute un formulaire au projet lorsque vous créez un projet Windows Forms. Le formulaire est nommé Form1. Les deux fichiers qui représentent le formulaire sont nommés le fichier Form1.cs et le fichier Form1.Designer.cs. Vous écrivez le code dans le fichier Form1.cs. Le concepteur Windows Forms écrit le code dans le fichier Form1.Designer.cs.

Pour plus d'informations sur le concepteur Windows Forms dans Visual C# 2005 Express ou dans Visual Studio 2005, reportez-vous au site de Web MSDN (Microsoft Developer Network) suivant :
http://msdn2.microsoft.com/en-us/library/ms173077.aspx (http://msdn2.microsoft.com/en-us/library/ms173077.aspx)

Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft Visual Studio 2005 Standard Edition
  • Microsoft Visual Studio 2005 Professional Edition
  • Microsoft Visual Studio 2005 Express Edition
  • Microsoft Visual C# 2005 Express Edition
Mots-clés : 
kbmt kbvs2005std kbvs2005mos kbvs2005exp kbvs2005pro kbvs2005search kbio kbhowtomaster kbsample kbstepbystep kbcodesnippet kbcode kbhowto KB910356 KbMtfr
Traduction automatiqueTraduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d’articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d’avoir accès, dans votre propre langue, à l’ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s’exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s’efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 910356  (http://support.microsoft.com/kb/910356/en-us/ )
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.
Partager
Options de support supplémentaire
Forums du support Microsoft Community
Nous contacter directement
Trouver un partenaire Microsoft Certified Partner
Microsoft Store