Şu anda çevrimdışısınız; İnternet'in yeniden bağlanması bekleniyor

Visual Basic 2005 veya Visual Basic .net kullanarak yinelemeli arama dizinleri hakkında

ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.

Makalenin İngilizcesi aşağıdaki gibidir: 306666
Bir Microsoft Visual c++ 2005 ve Microsoft Visual Bu makalede c++ .net sürümü için bkz: 307009.
Bir Microsoft Visual C# 2005 ve Microsoft Visual Bu makalede C# .net sürümü için bkz: 303974.
Özet
Bu makalede, kod boyunca gösterilmektedir yinelemeli olarak nasıl yapılır? alt dizinleri bir kök dizin ile başlayan dosyalar için arama yapın. Bir ara dize belirtilirse arama yapabilmesi için belirli bir eşleşen dosyaları ölçütleri. Her bir kod parçası olarak gereken açıklanmıtır. Çalışma kodu örnek, makalenin sonunda de sağlanır.

Dizin özyineleme, geliştiriciler için ortak bir g/Ç görevdir. Bu görevi FileSystemObject Bileşen Nesne Modeli (com) kolaylaştırır uygulamaları. Şimdi bu görevi Microsoft .net daha da kolay hale geldi Çerçeve. Benzer şekilde FileSystemObjectsınıfları System.IO ad alanındaki dosyalara erişmek için nesne yönelimli bir yol sağlamak ve dizinleri.

Gereksinimleri

, Aşağıdaki listede önerilen donanım, yazılım, ağ Altyapı ve gereksinim duyduğunuz hizmet paketleri:
  • Microsoft Visual Studio 2005 veya Microsoft Visual Studio .NET
Microsoft programlama örneklerini yalnızca garanti olmadan ya da sağlar örtülü veya. Bu içerir ancak örtülü için sınırlı değildir satılabilirlik veya belirli bir amaca uygunluk garantileri. Bu makalede yüklenmekte olan programlama dili hakkında bilgi sahibi olduğunuz varsayılmaktadır demonstrated ve oluşturmak ve hata ayıklamak için kullanılan araçlar yordamlar. Microsoft destek mühendisleri işlevselliğinin açıklanmasına yardımcı olabilir bir Belirli yordam ancak değiştirme bu örnekler sağlamak için eklenen Özel gereksinimlerinizi karşılamak üzere işlevselliği veya yapýsýný yordamlar.

Dizin yineleme

Dosya ve dizin düzenlemesi sınıfları System.IO ad alanında bulunur. Bu sınıflar ile çalışma önce almanız Aşağıdaki ad alanına projeniz.
using System.IO;				
System.IO ad alanı sınıfları dosyalarla çalışmak için birçok seçenek sunar ve dizinleri. Örneğini oluşturabilir sınıfları System.IO ad yalnızca sağlar, Ayrıca, dosya ve dizin yardımcı program sınıfları sağlar. Bu sınıflar içeren paylaşılan Bu türde bir değişken bildirmek zorunda kalmadan çağrı yöntemleri. Örneğin, alt dizinlerinin elde etmek için Dizin nesnesini kullanabilirsiniz bir verilen Dizin.

Aşağıdaki kod, bir dize dizisini geri dönmek için paylaşılan Dizin nesnesinin GetDirectories yöntemini kullanır. Bu dizi içerir Dizin yolu adları varsa c:\ dizinin alt dizinleri için.
Dim directories() As String = Directory.GetDirectories("C:\")				
Dizin nesnesi GetFiles yöntemi de içerir. Eşleşen dosyaları dize dizisi almak GetFiles yöntemi sağlar bir Belirli ölçüt. Aşağıdaki kod örneği c:\ dizininde sona dosyaların tümünü almak için Dosya nesnesi kullanır. .dll uzantısına.
Dim files() As String = Directory.GetFiles("C:\", "*.dll")				
GetDirectories yöntemi ile bir Dizin nesnesi GetFiles yöntem yinelemeli arama dosyaları için gereken tüm değildir, Arama dizesiyle eşleşen. Aşağıdaki yöntem, özyineleme gerçekleştirmek için kullanılır.
    Sub DirSearch(ByVal sDir As String)        Dim d As String        Dim f As String        Try            For Each d In Directory.GetDirectories(sDir)                For Each f In Directory.GetFiles(d, txtFile.Text)                    lstFilesFound.Items.Add(f)                Next                DirSearch(d)            Next        Catch excpt As System.Exception            Debug.WriteLine(excpt.Message)        End Try    End Sub				
Yukarıdaki kod dizini içeren bir dize iletir, DirSearchiçin arama yapmak istediğiniz. Bu dize değeri dizinin tam yol adı değil. Siz GetDirectories yöntemi, dizinin alt dizinleri almak için kullanabilirsiniz yordamınız geçirildi. GetDirectories yöntemi bir dizi verdiğinden, kullanabileceğiniz bir için/her ifadesine Her alt yineleme. Her alt dizinde GetFiles yöntemi dizindeki dosyaların içinde yineleme yapmak için kullanın. Değeri Formunuzda metin kutusunu GetFiles yönteme geçirildi. Metin kutusu filtre arama dizesi içeriyor GetFiles döndüreceðini sonuçları. Herhangi bir dosya arama ölçütleri eşleşirse, bulundukları liste kutusuna eklenir. Bulunan her alt DirSearch tekrar arayın ve bir alt dizine geçmesi. Bu özyinelemeli aramayı kullanarak verilen kök dizinin tüm alt dizinlerde arama yapabilirsiniz.

Tam kod örneği

  1. Yeni bir Microsoft Visual Basic 2005 veya Microsoft Visual Başlat Temel .net Windows Application projesi. Varsayılan olarak, Form1 adlý bir form oluşturulur.
  2. Görünüm menüsünden Solution Explorer'ı görüntülemek için tıklatın.
  3. Solution Explorer'da Form1'isağ tıklatın ve Kod Görüntüle'yitıklatın.
  4. Form1 kod penceresinde vurgulayın ve Tümünü Sil Varolan kodu.
  5. 2 Form1'in code penceresinde aşağıdaki kodu yapıştırın formu.
    Imports System.IOPublic Class Form1    Inherits System.Windows.Forms.Form#Region " Windows Form Designer generated code "    Public Sub New()        MyBase.New()        'This call is required by the Windows Form Designer.        InitializeComponent()        'Add any initialization after the InitializeComponent() call.    End Sub    'Form overrides dispose to clean up the component list.    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)        If disposing Then            If Not (components Is Nothing) Then                components.Dispose()            End If        End If        MyBase.Dispose(disposing)    End Sub        Friend WithEvents cboDirectory As System.Windows.Forms.ComboBox    Friend WithEvents txtFile As System.Windows.Forms.TextBox    Friend WithEvents lstFilesFound As System.Windows.Forms.ListBox    Friend WithEvents lblDirectory As System.Windows.Forms.Label    Friend WithEvents lblFile As System.Windows.Forms.Label    Friend WithEvents btnSearch As System.Windows.Forms.Button        Private components As System.ComponentModel.IContainer    'NOTE: The following procedure is required by the Windows Form Designer.    'You can use the Windows Form Designer to modify it; however, do not    'use the code editor to modify it.    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()        Me.btnSearch = New System.Windows.Forms.Button()        Me.lblFile = New System.Windows.Forms.Label()        Me.cboDirectory = New System.Windows.Forms.ComboBox()        Me.txtFile = New System.Windows.Forms.TextBox()        Me.lstFilesFound = New System.Windows.Forms.ListBox()        Me.lblDirectory = New System.Windows.Forms.Label()        Me.SuspendLayout()        '        'btnSearch        '        Me.btnSearch.Location = New System.Drawing.Point(608, 248)        Me.btnSearch.Name = "btnSearch"        Me.btnSearch.TabIndex = 0        Me.btnSearch.Text = "Search"        '        'lblFile        '        Me.lblFile.Location = New System.Drawing.Point(8, 16)        Me.lblFile.Name = "lblFile"        Me.lblFile.Size = New System.Drawing.Size(144, 16)        Me.lblFile.TabIndex = 5        Me.lblFile.Text = "Search for files containing:"        '        'cboDirectory        '        Me.cboDirectory.DropDownWidth = 112        Me.cboDirectory.Location = New System.Drawing.Point(8, 128)        Me.cboDirectory.Name = "cboDirectory"        Me.cboDirectory.Size = New System.Drawing.Size(120, 21)        Me.cboDirectory.TabIndex = 2        Me.cboDirectory.Text = "ComboBox1"        '        'txtFile        '        Me.txtFile.Location = New System.Drawing.Point(8, 40)        Me.txtFile.Name = "txtFile"        Me.txtFile.Size = New System.Drawing.Size(120, 20)        Me.txtFile.TabIndex = 4        Me.txtFile.Text = "*.dll"        '        'lstFilesFound        '        Me.lstFilesFound.Location = New System.Drawing.Point(152, 8)        Me.lstFilesFound.Name = "lstFilesFound"        Me.lstFilesFound.Size = New System.Drawing.Size(528, 225)        Me.lstFilesFound.TabIndex = 1        '        'lblDirectory        '        Me.lblDirectory.Location = New System.Drawing.Point(8, 96)        Me.lblDirectory.Name = "lblDirectory"        Me.lblDirectory.Size = New System.Drawing.Size(120, 23)        Me.lblDirectory.TabIndex = 3        Me.lblDirectory.Text = "Look In:"        '        'Form1        '        Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)        Me.ClientSize = New System.Drawing.Size(688, 273)        Me.Controls.AddRange(New System.Windows.Forms.Control() _            {Me.lblFile, Me.txtFile, Me.lblDirectory, Me.cboDirectory, _            Me.lstFilesFound, Me.btnSearch})        Me.Name = "Form1"        Me.Text = "Form1"        Me.ResumeLayout(False)    End Sub#End Region    Private Sub btnSearch_Click(ByVal sender As System.Object, _            ByVal e As System.EventArgs) Handles btnSearch.Click        lstFilesFound.Items.Clear()        txtFile.Enabled = False        cboDirectory.Enabled = False        btnSearch.Text = "Searching..."        Me.Cursor = Cursors.WaitCursor        Application.DoEvents()        DirSearch(cboDirectory.Text)        btnSearch.Text = "Search"        Me.Cursor = Cursors.Default        txtFile.Enabled = True        cboDirectory.Enabled = True    End Sub    Sub DirSearch(ByVal sDir As String)        Dim d As String        Dim f As String        Try            For Each d In Directory.GetDirectories(sDir)                For Each f In Directory.GetFiles(d, txtFile.Text)                    lstFilesFound.Items.Add(f)                Next                DirSearch(d)            Next        Catch excpt As System.Exception            Debug.WriteLine(excpt.Message)        End Try    End Sub    Private Sub Form1_Load(ByVal sender As System.Object, _            ByVal e As System.EventArgs) Handles MyBase.Load        Dim s As String        cboDirectory.Items.Clear()        For Each s In Directory.GetLogicalDrives()            cboDirectory.Items.Add(s)        Next        cboDirectory.Text = "C:\"    End SubEnd Class					
    Not Visual Basic 2005 kodu değiştirmeniz gerekir. Varsayılan olarak, Visual Windows Forms oluşturduğunuzda, basic projesi için iki dosya oluşturur. Proje. Form Form1 adlý formu temsil eden iki dosya demektir Adlandırılmış Form1.vb ve Form1.Designer.vb. Form1.vb dosyasında kod yazmak. Windows Forms Designer Form1.Designer.vb dosyasındaki kod yazar. , Windows Forms tasarýmcýsý partial anahtar uygulanışı bölmek için kullanır. İki ayrı dosya içine Form1. Bu davranış, tasarımcı tarafından oluşturulan engeller. kodunuzu interspersed kodun.

    Daha fazla bilgi için Yeni Visual Basic 2005 dil geliştirmeleri hakkında aşağıdaki ziyaret edin Microsoft Developer Network (msdn) Web sitesi: Parçalı sınıflar ve Windows Forms ile ilgili daha fazla bilgi için Tasarımcısı, aşağıdaki msdn Web sitesini ziyaret edin:
  6. Oluþturup örneği çalıştırmak için F5 tuşuna basın.
Referanslar
Daha fazla bilgi için bilgi, makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın Microsoft Knowledge Base:
302309Bir metin dosyası System.IO Visual Basic 2005 veya Visual Basic .net kullanarak nasıl okunur
Visual Basic hakkında daha fazla genel bilgi için .net, aşağıdaki Usenet haber grubuna bakın:

Uyarı: Bu makalenin çevirisi otomatik olarak yapılmıştır

Özellikler

Makale No: 306666 - Son İnceleme: 07/24/2012 06:27:00 - Düzeltme: 1.0

Microsoft Visual Basic 2005, Microsoft Visual Basic .NET 2003 Standard Edition, Microsoft Visual Basic .NET 2002 Standard Edition

  • kbvs2005swept kbvs2005applies kbhowtomaster kbmt KB306666 KbMttr
Geri bildirim