Làm th? nào đ? đ? quy m?c tin thư thoại tra c?u b?ng cách s? d?ng Visual C#

D?ch tiêu đ? D?ch tiêu đ?
ID c?a bài: 303974 - Xem s?n ph?m mà bài này áp d?ng vào.
Đ? m?t phiên b?n Microsoft Visual C++ .NET c?a bài vi?t này, h?y xem 307009.
Đ? m?t phiên b?n Microsoft Visual Basic.net c?a bài vi?t này, h?y xem 306666.

Bài vi?t này đ? c?p đ? không gian tên Microsoft Khuôn kh? .NET l?p thư vi?n sau đây:
  • System.IO
Bung t?t c? | Thu g?n t?t c?

? Trang này

Tóm t?t

Bài vi?t t?ng bư?c này cho th?y làm th? nào đ? đ? quy t?m m?c tin thư thoại con cho các t?p tin trong m?t ?ng d?ng C# Windows h?nh th?c. A chu?i tra c?u đư?c quy đ?nh như v?y mà b?n có th? tra c?u cho các t?p tin đó phù h?p v?i m?t m?t s? tiêu chí kí t? đ?i di?n đ?i di?n. M?i m?t ph?n c?a m? gi?i thích khi c?n thi?t. Làm vi?c m?t m?u m? c?ng đư?c cung c?p ? ph?n cu?i c?a bài vi?t.

m?c tin thư thoại đ? quy là m?t nhi?m v? IO ph? bi?n cho các nhà phát tri?n. Làm FileSystemObject cho nhi?m v? này d? dàng cho mô h?nh đ?i tư?ng thành ph?n (COM) ?ng d?ng. Bây gi? công vi?c này đ? tr? nên d? dàng hơn trong net. Tương t? như FileSystemObject, các l?p h?c trong không gian tên System.IO cung c?p cho m?t đ?i tư?ng theo đ?nh hư?ng cách đ? truy c?p t?p tin và m?c tin thư thoại.

Yêu c?u

  • Microsoft Visual C# 2005 ho?c Microsoft Visual C# .NET

m?c tin thư thoại đ? quy

Các l?p h?c thao tác t?p tin và m?c tin thư thoại n?m trong không gian tên System.IO . Trư?c khi b?n làm vi?c v?i các l?p h?c, b?n s? chuy?n nh?p không gian tên sau đây vào d? án c?a b?n:
using System.IO;
Các l?p h?c không gian tên System.IO cung c?p nhi?u l?p h?c mà cho phép b?n làm vi?c v?i các t?p tin và m?c tin thư thoại. Các l?p h?c bao g?m các t?p tin l?p h?c, l?p h?c m?c tin thư thoại, và các l?p h?c h?u ích. Nhi?u ngư?i trong s? các l?p h?c có ch?a t?nh phương pháp mà b?n có th? g?i mà không c?n ph?i khai báo m?t bi?n lo?i. Ví d?, b?n có th? s? d?ng các đ?i tư?ng m?c tin thư thoại đ? có đư?c các m?c tin thư thoại con c?a m?t nh?t đ?nh m?c tin thư thoại.

Các m? sau đây s? d?ng phương pháp GetDirectories t?nh c?a các đ?i tư?ng m?c tin thư thoại đ? tr? v? m?t lo?t các dây. M?ng này có ch?a m?c tin thư thoại con đư?ng tên cho m?c tin thư thoại con c?a m?c tin thư thoại C, n?u có.
string[] directories = Directory.GetDirectories("C:\\");
Đ?i tư?ng m?c tin thư thoại c?ng ch?a m?t phương pháp g?i là GetFiles cho phép b?n l?y m?t chu?i m?ng c?a các t?p tin phù h?p v?i m?t tiêu chí nh?t đ?nh. M?u m? sau đây s? d?ng các đ?i tư?ng t?p tin đ? l?y t?t c? các file trong m?c tin thư thoại C k?t thúc v?i m?t ph?n m? r?ng .dll:
string[] files = Directory.GetFiles("C:\\", "*.dll");
Các phương pháp GetDirectoriesGetFiles c?a đ?i tư?ng m?c tin thư thoại là t?t c? nh?ng g? b?n c?n đ? đ? quy tra c?u cho các t?p tin mà phù h?p v?i chu?i tra c?u. Các phương pháp sau đây đư?c s? d?ng đ? th?c hi?n đ? quy:
void DirSearch(string sDir) 
{
	try	
	{
	   foreach (string d in Directory.GetDirectories(sDir)) 
	   {
		foreach (string f in Directory.GetFiles(d, txtFile.Text)) 
		{
		   lstFilesFound.Items.Add(f);
		}
		DirSearch(d);
	   }
	}
	catch (System.Exception excpt) 
	{
		Console.WriteLine(excpt.Message);
	}
}
M? trư?c đi m?t chu?i, có ch?a các m?c tin thư thoại đó b?n mu?n tra c?u, đ? DirSearch. Giá tr? chu?i này là đư?ng d?n đ?y đ? c?a m?c tin thư thoại. B?n có th? s? d?ng GetDirectories đ? l?y các m?c tin thư thoại con c?a m?c tin thư thoại đư?c thông qua vào th? t?c c?a b?n. B?i v? GetDirectories tr? l?i m?t m?ng, b?n có th? s? d?ng m?t cho/m?i tuyên b? đ? iterate trong m?i m?c tin thư thoại con. Đ?i v?i m?i m?c tin thư thoại con, s? d?ng GetFiles phương pháp đ? iterate qua các t?p tin trong m?c tin thư thoại đó. Giá tr? c?a h?p văn b?n vào h?nh th?c c?a b?n thông qua đ? GetFiles. H?p văn b?n ch?a chu?i tra c?u b? l?c k?t qu? r?ng GetFiles tr? v?. N?u b?t k? t?p tin phù h?p v?i tiêu chí tra c?u, chúng đư?c thêm vào h?p danh sách c?a b?n. Đ?i v?i m?i m?c tin thư thoại con có v? trí, g?i DirSearch m?t l?n n?a, và vư?t qua nó m?t m?c tin thư thoại con. B?ng cách s? d?ng này g?i đ? quy, b?n có th? tra c?u t?t c? các m?c tin thư thoại con c?a m?c tin thư thoại g?c đư?c đưa ra.

M? hoàn ch?nh m?u

  1. B?t đ?u m?t d? án ?ng d?ng Visual C# Windows m?i. theo m?c đ?nh, m?t h?nh th?c đư?c đ?t tên theo Form1 là t?o ra.
  2. Trong menu xem , h?y nh?p vào đ? hi?n th? gi?i pháp Explorer.
  3. Trong gi?i pháp Explorer, b?m chu?t ph?i vào Form1, và sau đó nh?p vào Xem m?.
  4. Trong c?a s? m? Form1, đánh d?u ki?m và sau đó xóa t?t c? m? hi?n t?i.
  5. Dán đo?n m? sau trong c?a s? m? c?a Form1.
    using System;
    using System.Drawing;
    using System.Collections;
    using System.ComponentModel;
    using System.Windows.Forms;
    using System.Data;
    using System.IO;
    
    namespace RecursiveSearchCS
    {
        /// <summary>
        /// Summary description for Form1
        /// </summary>
        public class Form1 : System.Windows.Forms.Form
        {
            internal System.Windows.Forms.Button btnSearch;
            internal System.Windows.Forms.TextBox txtFile;
            internal System.Windows.Forms.Label lblFile;
            internal System.Windows.Forms.Label lblDirectory;
            internal System.Windows.Forms.ListBox lstFilesFound;
            internal System.Windows.Forms.ComboBox cboDirectory;
            /// <summary>
            /// Required designer variable
            /// </summary>
            private System.ComponentModel.Container components = null;
    
            public Form1()
            {
                // 
                // Required for Windows Form Designer support
                // 
                InitializeComponent();
    
                // 
                // TODO: Add any constructor code after InitializeComponent call.
                // 
            }
    
            /// <summary>
            /// Clean up any resources being used.
            /// </summary>
            protected override void Dispose( bool disposing )
            {
                if( disposing )
                {
                    if (components != null) 
                    {
                        components.Dispose();
                    }
                }
                base.Dispose( disposing );
            }
    
            #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.btnSearch = new System.Windows.Forms.Button();
                this.txtFile = new System.Windows.Forms.TextBox();
                this.lblFile = new System.Windows.Forms.Label();
                this.lblDirectory = new System.Windows.Forms.Label();
                this.lstFilesFound = new System.Windows.Forms.ListBox();
                this.cboDirectory = new System.Windows.Forms.ComboBox();
                this.SuspendLayout();
                // 
                // btnSearch
                // 
                this.btnSearch.Location = new System.Drawing.Point(608, 248);
                this.btnSearch.Name = "btnSearch";
                this.btnSearch.TabIndex = 0;
                this.btnSearch.Text = "Search";
                this.btnSearch.Click += new System.EventHandler(this.btnSearch_Click);
                // 
                // txtFile
                // 
                this.txtFile.Location = new System.Drawing.Point(8, 40);
                this.txtFile.Name = "txtFile";
                this.txtFile.Size = new System.Drawing.Size(120, 20);
                this.txtFile.TabIndex = 4;
                this.txtFile.Text = "*.dll";
                // 
                // lblFile
                // 
                this.lblFile.Location = new System.Drawing.Point(8, 16);
                this.lblFile.Name = "lblFile";
                this.lblFile.Size = new System.Drawing.Size(144, 16);
                this.lblFile.TabIndex = 5;
                this.lblFile.Text = "Search for files containing:";
                // 
                // lblDirectory
                // 
                this.lblDirectory.Location = new System.Drawing.Point(8, 96);
                this.lblDirectory.Name = "lblDirectory";
                this.lblDirectory.Size = new System.Drawing.Size(120, 23);
                this.lblDirectory.TabIndex = 3;
                this.lblDirectory.Text = "Look In:";
                // 
                // lstFilesFound
                // 
                this.lstFilesFound.Location = new System.Drawing.Point(152, 8);
                this.lstFilesFound.Name = "lstFilesFound";
                this.lstFilesFound.Size = new System.Drawing.Size(528, 225);
                this.lstFilesFound.TabIndex = 1;
                // 
                // cboDirectory
                // 
                this.cboDirectory.DropDownWidth = 112;
                this.cboDirectory.Location = new System.Drawing.Point(8, 128);
                this.cboDirectory.Name = "cboDirectory";
                this.cboDirectory.Size = new System.Drawing.Size(120, 21);
                this.cboDirectory.TabIndex = 2;
                this.cboDirectory.Text = "ComboBox1";
                // 
                // Form1
                // 
                this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
                this.ClientSize = new System.Drawing.Size(688, 277);
                this.Controls.AddRange(new System.Windows.Forms.Control[] {
    
                this.btnSearch,
                this.txtFile,
                this.lblFile,
                this.lblDirectory,
                this.lstFilesFound,
                this.cboDirectory});
    
                this.Name = "Form1";
                this.Text = "Form1";
                this.Load += new System.EventHandler(this.Form1_Load);
                this.ResumeLayout(false);
    
            }
            #endregion
    
            /// <summary>
            /// The main entry point for the application
            /// </summary>
            [STAThread]
            static void Main() 
            {
                Application.Run(new Form1());
            }
    
            private void btnSearch_Click(object sender, System.EventArgs e)
            {
                lstFilesFound.Items.Clear();
                txtFile.Enabled = false;
                cboDirectory.Enabled = false;
                btnSearch.Text = "Searching...";
                this.Cursor = Cursors.WaitCursor;
                Application.DoEvents();
                DirSearch(cboDirectory.Text);
                btnSearch.Text = "Search";
                this.Cursor = Cursors.Default;
                txtFile.Enabled = true;
                cboDirectory.Enabled = true;
            }
    
            private void Form1_Load(object sender, System.EventArgs e)
            {
                cboDirectory.Items.Clear();
                foreach (string s in Directory.GetLogicalDrives())
                {
                    cboDirectory.Items.Add(s);
                }
                cboDirectory.Text = "C:\\";
            }
    
            void DirSearch(string sDir) 
            {
                try	
                {
                    foreach (string d in Directory.GetDirectories(sDir)) 
                    {
                        foreach (string f in Directory.GetFiles(d, txtFile.Text)) 
                        {
                            lstFilesFound.Items.Add(f);
                        }
                        DirSearch(d);
                    }
                }
                catch (System.Exception excpt) 
                {
                    Console.WriteLine(excpt.Message);
                }
            }
        }
    }
    Lưu ? B?n ph?i thay đ?i m? trong Visual Studio 2005 và trong Visual Studio 2008. Trong phiên b?n c?a Visual Studio s?m hơn Visual Studio 2005, Visual C# thêm m?t h?nh th?c cho các d? án khi b?n t?o m?t d? án c?a s? h?nh th?c. Các h?nh th?c đư?c đ?t tên Form1. Trong Visual C# 2005 và trong phiên b?n sau này, hai t?p tin đ?i di?n cho các h?nh th?c đư?c đ?t tên Form1.cs và Form1.designer.cs. B?n vi?t m? trong t?p tin Form1.cs. Các nhà thi?t k? h?nh th?c Windows vi?t m? trong t?p tin Form1.designer.cs.

    Đ? chuy?n đ?i các m?u m? đ? Visual C# 2005 ho?c Visual C# 2008, t?o ra m?t ?ng d?ng Visual C# Windows m?i, và sau đó làm theo các bư?c sau:
    1. Sao chép các đ?i tư?ng nút ch?n m?t , đ?i tư?ng h?p văn b?n và các đ?i tư?ng khác c?a c?a s? l?p Form1 m?t ph?n trong t?p tin Form1.Designer.cs.
    2. Thêm n?i dung c?a ph?n phương pháp InitializeComponent trong m? ? trên đ? các phương pháp InitializeComponent trong các t?p tin Form1.Designer.cs. Dán n?i dung sau khi n?i dung hi?n t?i c?a các phương pháp InitializeComponent .
    3. Sao chép các phương pháp sau đây t? m? trên vào Form1 l?p trong Form1.cs file:
      • btnSearch_Click
      • Form1_Load
      • DirSearch
    4. Thêm m?t b?ng cách s? d?ng System.IO; s? d?ng báo cáo đ? các t?p tin Form1.cs.
    Đ? bi?t thêm chi ti?t v? thi?t k? h?nh th?c Windows, ghé thăm Web site sau c?a Microsoft Developer Network (MSDN):
    http://msdn2.Microsoft.com/en-US/Library/ms173077.aspx
  6. Nh?n F5 đ? xây d?ng b?t lên và ch?y các m?u chương tr?nh.

Tham kh?o

Đ? bi?t thêm chi ti?t, nh?p vào s? bài vi?t sau đ? xem bài vi?t trong cơ s? ki?n th?c Microsoft:
306777Làm th? nào đ? đ?c m?t t?p tin văn b?n b?ng cách s? d?ng System.IO và Visual C#

Thu?c tính

ID c?a bài: 303974 - L?n xem xét sau cùng: 30 Tháng Năm 2013 - Xem xét l?i: 3.0
Áp d?ng
  • Microsoft Visual C# 2005
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Visual C# 2008 Express Edition
T? khóa: 
kbhowtomaster kbio kbmt KB303974 KbMtvi
Máy d?ch
QUAN TRỌNG: Bài viết này được d?ch b?ng phần mềm dịch thu?t của Microsoft và có thể được Cộng đồng Microsoft chỉnh sửa l?i thông qua công nghệ CTF thay vì một biên dịch viên chuyên nghiệp. Microsoft cung c?p các bài vi?t đư?c c? biên d?ch viên và ph?n m?m d?ch thu?t th?c hi?n và c?ng đ?ng ch?nh s?a l?i đ? b?n có th? truy c?p vào t?t c? các bài vi?t trong Cơ s? Ki?n th?c c?a chúng tôi b?ng nhi?u ngôn ng? Tuy nhiên, bài vi?t do máy d?ch hoặc thậm chí cộng đồng chỉnh sửa sau không ph?i lúc nào c?ng hoàn h?o. Các bài vi?t này có th? ch?a các sai sót v? t? v?ng, cú pháp ho?c ng? pháp, Microsoft không ch?u trách nhi?m v? b?t k? s? thi?u chính xác, sai sót ho?c thi?t h?i nào do vi?c d?ch sai n?i dung ho?c do ho?t đ?ng s? d?ng c?a khách hàng gây ra.
Nh?p chu?t vào đây đ? xem b?n ti?ng Anh c?a bài vi?t này: 303974

Cung cấp Phản hồi

 

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