วิธีการที่ทำการดำเนินการแฟ้มพื้นฐาน I/O ใน Visual c# 2005 Express Edition

การแปลบทความ การแปลบทความ
หมายเลขบทความ (Article ID): 910356 - ผลิตภัณฑ์ที่เกี่ยวข้องในบทความนี้
สำหรับรุ่น Microsoft Visual Basic .NET ของบทความนี้ ดู304427.
สำหรับรุ่น Microsoft Visual c ++.NET ของบทความนี้ ดู307398.
สำหรับรุ่น Microsoft Visual c# .NET ของบทความนี้ ดู304430.
บทความนี้อ้างถึงSystem.IOnamespace ของไลบรารีคลาสของ.NET Framework Microsoft
ขยายทั้งหมด | ยุบทั้งหมด

เนื้อหาบนหน้านี้

บทนำ

บทความที่มีการทีละขั้นตอนนี้อธิบายวิธีการที่ทำการดำเนินการแฟ้มพื้นฐาน I/O ใน Microsoft Visual c# 2005 Express Edition ถ้าคุณกำลังใหม่ไปยัง Microsoft .NET Framework คุณจะพบว่า รุ่นของวัตถุสำหรับการดำเนินการแฟ้มใน Microsoft .NET เหมือนกับFileSystemObjectรุ่นของวัตถุที่ไม่ได้รับความนิยมกับนักพัฒนา Microsoft Visual Studio 6.0 จำนวนมาก เมื่อต้องการให้ช่วงการเปลี่ยนภาพได้ง่ายขึ้น ฟังก์ชันการทำงานที่อธิบายไว้ในบทความนี้จะขึ้นอยู่กับบทความฐานความรู้ของ Microsoft ต่อไปนี้:
186118วิธีการใช้ FileSystemObject กับ Visual Basic
คุณยังสามารถใช้การFileSystemObjectวัตถุใน.NET เนื่องจากการFileSystemObjectวัตถุเป็นคอมโพเนนต์ของคอมโพเนนต์วัตถุแบบจำลอง (COM) .NET ต้องการให้คุณเข้าถึงFileSystemObjectวัตถุผ่านเลเยอร์ interop ถ้าคุณต้องการที่ใช้เป็น wrapper, .NET สร้างการ wrapper สำหรับคอมโพเนนต์สำหรับคุณ อย่างไรก็ตาม ระดับชั้นต่อไปนี้ใน.NET Framework เสนอฟังก์ชันที่ไม่พร้อมใช้งานเมื่อคุณใช้การFileSystemObjectวัตถุ โดยไม่มีค่าผลิตของเลเยอร์ interop:
  • กระบวนการแฟ้ม:คลาส
  • กระบวนการFileInfoคลาส
  • กระบวนการไดเรกทอรีคลาส
  • กระบวนการDirectoryInfoคลาส
  • ระดับชั้นที่เกี่ยวข้องอื่น ๆ

ความต้องการ

รายการต่อไปนี้แสดงฮาร์ดแวร์ที่แนะนำ ซอฟต์แวร์ โครงสร้างพื้นฐานของเครือข่าย และ service pack ที่คุณต้องการ:
  • Microsoft Visual c# 2005 Express Edition หรือ Microsoft Visual Studio 2005

การดำเนินการแฟ้ม demonstrated I/O

ตัวอย่างรหัสในบทความนี้อธิบายวิธีการที่ดำเนินการแฟ้มพื้นฐาน I/O ในส่วน "ตัวอย่าง Step-by-step" อธิบายวิธีการสร้างโปรแกรมตัวอย่างที่แสดงการดำเนินการ I/O แฟ้มต่อไปนี้:
  • แฟ้มข้อความที่อ่าน
  • เขียนแฟ้มข้อความ
  • ดูข้อมูลไฟล์
  • รายการดิสก์ไดรฟ์
  • โฟลเดอร์รายการ
  • แสดงรายการแฟ้ม
หมายเหตุ:ถ้าคุณต้องการใช้ตัวอย่างรหัสต่อไปนี้โดยตรง ให้ลองต่อไปนี้:
  • คุณต้องการรวมไว้System.IOnamespace ดัง
    using System.IO;
  • คุณต้องประกาศwindirตัวแปรดัง
    string    winDir=System.Environment.GetEnvironmentVariable("windir");
  • คุณต้องประกาศaddListItemฟังก์ชันต่อไปนี้
    private void addListItem(string value)
    {
    	this.listbox1.Items.Add(value);
    }
    หมายเหตุ:แทนการ declaring และการใช้การaddListItemฟังก์ชัน คุณสามารถใช้คำสั่งต่อไปนี้โดยตรง
    this.listbox1.Items.Add(value);

อ่านแฟ้มข้อความ

การใช้ตัวอย่างโค้ดต่อไปนี้เป็นStreamReaderคลาเพื่ออ่านแฟ้ม System.ini มีเพิ่มเนื้อหาของแฟ้มเป็นกล่องรายการตัวควบคุม กระบวนการลอง catch...บล็อกถูกใช้เพื่อแจ้งให้ทราบของแอพลิเคชันถ้าแฟ้มว่างเปล่า มีหลายวิธีการตรวจสอบเมื่อถึงจุดสิ้นสุดของแฟ้ม ตัวอย่างรหัสนี้ใช้นั้นแทรกวิธีการตรวจสอบบรรทัดถัดไปก่อนที่จะอ่านได้
StreamReader reader = new StreamReader(winDir + "\\system.ini");
            try
            {
                do
                {
                    addListItem(reader.ReadLine());
                }
                while (reader.Peek() != -1);
            }

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

            finally
            {
                reader.Close();
            }

เขียนแฟ้มข้อความ

การใช้ตัวอย่างโค้ดต่อไปนี้เป็นStreamWriterคลาสที่สร้างแฟ้ม และ การเขียนไปยังแฟ้ม ถ้าคุณมีแฟ้มมีอยู่ คุณสามารถเปิดแฟ้มที่มีอยู่ในลักษณะเดียวกัน
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");

ดูข้อมูลแฟ้ม

การใช้ตัวอย่างโค้ดต่อไปนี้เป็นFileInfoวัตถุการเข้าถึงคุณสมบัติของแฟ้ม มีใช้แฟ้ม Notepad.exe ในตัวอย่างโค้ดนี้ คุณสมบัติปรากฏขึ้นในตัวกล่องรายการตัวควบคุม
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;

รายการดิสก์ไดรฟ์

รหัสการต่อไปนี้ใช้ตัวอย่างนี้ไดเรกทอรีคลาและไดรฟ์คลาเพื่อเรียกคืนรายการของไดรฟ์แบบลอจิคัลบนระบบ ตัวอย่างนี้รหัส ผลลัพธ์ปรากฏในตัวกล่องรายการตัวควบคุม
string[] drives = Directory.GetLogicalDrives();
    foreach(string drive in drives)
    {
        addListItem(drive);
    }

รายชื่อโฟลเดอร์

รหัสการต่อไปนี้ใช้ตัวอย่างนี้GetDirectoriesวิธีการนี้ไดเรกทอรีคลาเพื่อเรียกคืนรายการของโฟลเดอร์
string[] dirs = Directory.GetDirectories(winDir);
    foreach(string dir in dirs)
        {
            addListItem(dir);
        }

รายการแฟ้ม

รหัสการต่อไปนี้ใช้ตัวอย่างนี้GetFilesวิธีการนี้ไดเรกทอรีคลาเพื่อเรียกคืนรายการของแฟ้ม
string[] files = Directory.GetFiles(winDir);
            foreach (string fileName in files)
            {
                addListItem(fileName);
            }
ปัญหาต่าง ๆ อาจเกิดขึ้นเมื่อผู้ใช้พยายามเข้าถึงแฟ้ม แฟ้มอาจไม่มีอยู่ หรือแฟ้มอาจถูกใช้ นอกจากนี้ยัง ผู้ใช้อาจไม่มีสิทธิ์ในแฟ้มหรือโฟลเดอร์ที่จะพยายามเข้าถึง คุณต้องพิจารณาโอกาสเหล่านี้เมื่อคุณเขียนรหัส และทำ provisions เพื่อจัดการข้อยกเว้นที่อาจถูกสร้างขึ้น

ตัวอย่างแต่ละขั้นตอน

เมื่อต้องการสร้างโปรแกรมตัวอย่างที่แสดงการดำเนินการแฟ้มพื้นฐาน I/O ดำเนินการดังต่อไปนี้:
  1. ใน Visual c# 2005 Express Edition หรือ ใน Visual Studio 2005 สร้างโปรแกรมประยุกต์ Windows c# แสดงผลใหม่ที่ชื่อ WindowsApplication1 โดยค่าเริ่มต้น แบบฟอร์มที่มีชื่อ Form1 ถูกสร้างขึ้น
  2. คลิกขวาใน Explorer โซลูชันForm1.csแล้ว คลิกรหัสของมุมมอง.
  3. ลบทั้งหมดรหัสในตัวแก้ไขรหัส
  4. วางรหัสต่อไปนี้เป็นตัวแก้ไขรหัส
    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);
                }
            }
        }
    }
  5. คลิกขวาใน Explorer โซลูชันForm1.Designer.csแล้ว คลิกรหัสของมุมมอง.
  6. ลบทั้งหมดรหัสในตัวแก้ไขรหัส
  7. วางรหัสต่อไปนี้เป็นตัวแก้ไขรหัส
    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. กด F5 เพื่อสร้าง และเรียกใช้โปรแกรมประยุกต์
  9. คลิกที่ปุ่มเพื่อดูการดำเนินการที่แตกต่างกัน
หมายเหตุ:โดยค่าเริ่มต้น Visual c# 2005 Express Edition หรือ Visual Studio 2005 เพิ่มฟอร์มหนึ่งไปโครงการเมื่อคุณสร้างโครงการแบบฟอร์ม Windows แบบฟอร์มมีชื่อ Form1 แฟ้มที่สองที่แสดงแบบฟอร์มมีชื่อแฟ้ม Form1.cs และแฟ้ม Form1.designer.cs คุณสามารถเขียนรหัสในแฟ้ม Form1.cs ตัวออกแบบฟอร์ม Windows เขียนรหัสในแฟ้ม Form1.designer.cs

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการออกแบบฟอร์ม Windows ใน Visual c# 2005 Express Edition หรือ ใน Visual Studio 2005 แวะไปที่เว็บไซต์ของ Microsoft สำหรับนักพัฒนาเครือข่าย (MSDN) ต่อไปนี้:
http://msdn2.microsoft.com/en-us/library/ms173077.aspx

คุณสมบัติ

หมายเลขบทความ (Article ID): 910356 - รีวิวครั้งสุดท้าย: 15 มกราคม 2554 - Revision: 4.0
ใช้กับ
  • Microsoft Visual Studio 2005 Standard Edition
  • Microsoft Visual Studio 2005 Professional
  • Microsoft Visual C# 2005 Express Edition
Keywords: 
kbvs2005std kbvs2005mos kbvs2005exp kbvs2005pro kbvs2005search kbio kbhowtomaster kbsample kbstepbystep kbcodesnippet kbcode kbhowto kbmt KB910356 KbMtth
แปลโดยคอมพิวเตอร์
ข้อมูลสำคัญ: บทความนี้แปลโดยซอฟต์แวร์การแปลด้วยคอมพิวเตอร์ของ Microsoft แทนที่จะเป็นนักแปลที่เป็นบุคคล Microsoft มีบทความที่แปลโดยนักแปลและบทความที่แปลด้วยคอมพิวเตอร์ เพื่อให้คุณสามารถเข้าถึงบทความทั้งหมดในฐานความรู้ของเรา ในภาษาของคุณเอง อย่างไรก็ตาม บทความที่แปลด้วยคอมพิวเตอร์นั้นอาจมีข้อบกพร่อง โดยอาจมีข้อผิดพลาดในคำศัพท์ รูปแบบการใช้ภาษาและไวยากรณ์ เช่นเดียวกับกรณีที่ชาวต่างชาติพูดผิดเมื่อพูดภาษาของคุณ Microsoft ไม่มีส่วนรับผิดชอบต่อความคลาดเคลื่อน ความผิดพลาดหรือความเสียหายที่เกิดจากการแปลเนื้อหาผิดพลาด หรือการใช้บทแปลของลูกค้า และ Microsoft มีการปรับปรุงซอฟต์แวร์การแปลด้วยคอมพิวเตอร์อยู่เป็นประจำ
ต่อไปนี้เป็นฉบับภาษาอังกฤษของบทความนี้:910356

ให้ข้อเสนอแนะ

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com