Visual Basic 2005 veya Visual Basic .NET temel dosya I/O yapma

Makale çevirileri Makale çevirileri
Makale numarası: 304427 - Bu makalenin geçerli olduğu ürünleri görün.
Bu makalenin Microsoft Visual C# .NET sürümü için bkz: 304430.
Bu makalenin Microsoft Visual C++ .NET sürümü için bkz: 307398.
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

Bu adım adım makalede, altı temel dosya giriş/çıkış (g/ç) işlemleri Microsoft Visual Basic 2005 veya Microsoft Visual Basic .NET nasıl gösterir. .NET için yeni iseniz, nesne modeli .NET'te dosya işlemleri için Visual Studio 6.0 geliştiricilerin çoğu popüler olan FileSystemObject (FSO) benzer olduğunu göreceksiniz. Geçişi kolaylaştırmak için bu makalede gösterilen işlevselliği üzerinde aşağıdaki Microsoft Bilgi Bankası makalesi dayanır:
186118 Visual Basic ile FileSystemObject nasıl kullanılır
.NET ile FileSystemObject kullanmaya devam edebilirsiniz. Bir bileşen nesne modeli (COM) bileşeni FileSystemObject olduğu için .NET nesne erişimi ile birlikte çalışma katman olması gerekir. Bunu kullanmak istiyorsanız, .NET bileşeni için bir sarmalayıcı oluşturur. Ancak, Dosya, FileInfo, Dizin, DirectoryInfo sınıfları ve ilgili diğer .NET Framework sınıfları ile birlikte çalışma katman bindirmeden FSO kullanılabilir olmayan işlevler sunar.

Gereksinimler

Aşağıdaki listede önerilen donanım, yazılım, ağ altyapısı ve gereken hizmet paketleri yer almaktadır:
  • Microsoft Windows Server 2003, Microsoft Windows 2000 Professional, Windows 2000 Server, Windows 2000 Advanced Server veya Microsoft Windows NT 4.0 Server
  • Microsoft Visual Studio 2005 veya Microsoft Visual Studio .NET
  • Microsoft Visual Studio 2005 Software Development Kit (SDK) hızlı başlangıç ipuçları veya Microsoft Visual Studio .NET SDK Hızlı Başlangıç ipuçları

Kanıtlanabilir dosya g/ç işlemleri

Bu makaledeki örneklerde, temel dosya g/ç işlemlerini açıklar. "Adım adım örnek" bölümüne aşağıdaki dosya g/ç işlemlerini gösteren bir örnek program oluşturma açıklanmaktadır:
  • Bir metin dosyası okuma
  • Metin dosyası yazma
  • Dosya bilgilerini görüntüleme
  • Disk sürücülerinin listesi
  • Alt klasörler listesi
  • Dosyaları listeleme

Bir metin dosyası okuma

Aşağıdaki örnek kod, StreamReader sınıfı System.ini dosyasını okumak için kullanır. Dosyanın içeriğini bir ListBox denetimi eklenir. Try... catch bloğu, dosya boşsa, program sizi uyarmak için kullanılır. Dosyanın sonuna ulaşıldığında belirlemek için birçok yol vardır; Bu örnek, bir sonraki satıra okumadan önce incelemek için Peek yöntemini kullanır.
    Dim reader As StreamReader = _
    New StreamReader(winDir & "\system.ini")
    Try
        Me.ListBox1.Items.Clear()
        Do 
            Me.ListBox1.Items.Add(reader.ReadLine)
        Loop Until reader.Peek = -1

    Catch
        Me.ListBox1.Items.Add("File is empty")

    Finally
        reader.Close()
    End Try
				

Metin dosyası yazma

Bu örnek kod bir StreamWriter sınıf oluşturmak ve bir dosyaya yazmak için kullanır. Varolan bir dosya varsa, aynı yolla açabilirsiniz.
    Dim writer As StreamWriter = _
    New StreamWriter("c:\KBTest.txt")
    writer.WriteLine("File created using StreamWriter class.")
    writer.Close()
				

Dosya bilgilerini görüntüleme

Bu örnek koda FileInfo nesne bir dosyanın özelliklerini erişmek için kullanır. Bu örnekte Notepad.exe kullanılır. Özellikler, ListBox denetiminin içinde görünür.
    Dim FileProps As FileInfo = New FileInfo(winDir & "\notepad.exe")
    With Me.ListBox1.Items
        .Clear()
        .Add("File Name = " & FileProps.FullName)
        .Add("Creation Time = " & FileProps.CreationTime)
        .Add("Last Access Time = " & FileProps.LastAccessTime)
        .Add("Last Write Time = " & FileProps.LastWriteTime)
        .Add("Size = " & FileProps.Length)
    End With
    FileProps = Nothing
				

Disk sürücülerinin listesi

Bu örnek koda sisteminde mantıksal sürücüleri listelemek için Dizin ve sürücü sınıfları kullanır. Bu örnek, bir liste kutusu denetiminde sonuçlar görüntülenir.
    Dim dirInfo As Directory
    Dim drive As String
    Me.ListBox1.Items.Clear()
    Dim drives() As String = dirInfo.GetLogicalDrives()
    For Each drive In drives
        Me.ListBox1.Items.Add(drive)
    Next
				

Alt klasörler listesi

Bu örnek kod, klasörlerin bir listesini almak için Directory sınıfının GetDirectories yöntemini kullanır.
    Dim dir As String
    Me.ListBox1.Items.Clear()
    Dim dirs() As String = Directory.GetDirectories(winDir)
    For Each dir In dirs
        Me.ListBox1.Items.Add(dir)
    Next
				

Dosyaları listeleme

Bu örnek kod, dosyaların bir listesini elde etmek için Directory sınıfının GetFiles yöntemini kullanır.
    Dim file As String
    Me.ListBox1.Items.Clear()
    Dim files() As String = Directory.GetFiles(winDir)
    For Each file In files
        Me.ListBox1.Items.Add(file)
    Next
				
Dosyalara erişimi kullanıcı aldığında, birçok şeyler yanlış gidebilir. Dosya var olmayabilir, dosya kullanımda olabilir veya kullanıcılar erişmeye çalıştığınız klasör dosyalarda haklara sahip olmayabilirsiniz. Kod yazarken aşağıdaki olasılıkları göz önünde bulundurun ve oluşturulabilir özel durumlar? i?lemek için önemlidir.

Adım adım örnek

  1. Visual Basic 2005 veya Visual Basic .NET, yeni bir Windows uygulaması oluşturun. Varsayılan olarak, Form1 oluşturulur.
  2. Kod penceresinde Form1 için açın.
  3. Arka plan kod Düzenleyicisi'nde kodunun tamamını silin.
  4. Aşağıdaki örnek kod, arka plan kod Düzenleyicisi penceresine yapıştırın.
    Option Strict On
    Imports System.IO
    
    Public Class Form1
        Inherits System.Windows.Forms.Form
        Private winDir As String
    #Region " Windows Form Designer generated code "
    
        Public Sub New()
            MyBase.New()
    
            'Windows Form Designer requires this call.
            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 ListBox1 As System.Windows.Forms.ListBox
        Friend WithEvents Button3 As System.Windows.Forms.Button
        Friend WithEvents Button5 As System.Windows.Forms.Button
        Friend WithEvents Button4 As System.Windows.Forms.Button
        Friend WithEvents Button2 As System.Windows.Forms.Button
        Friend WithEvents Button1 As System.Windows.Forms.Button
        Friend WithEvents Button6 As System.Windows.Forms.Button
        
        'Windows Form Designer requires this call.
        Private components As System.ComponentModel.Container
    
        'NOTE: Windows Form Designer requires the following procedure.
        '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.Button2 = New System.Windows.Forms.Button()
            Me.Button3 = New System.Windows.Forms.Button()
            Me.ListBox1 = New System.Windows.Forms.ListBox()
            Me.Button4 = New System.Windows.Forms.Button()
            Me.Button5 = New System.Windows.Forms.Button()
            Me.Button1 = New System.Windows.Forms.Button()
            Me.Button6 = New System.Windows.Forms.Button()
            Me.SuspendLayout()
            '
            'Button2
            '
            Me.Button2.Location = New System.Drawing.Point(272, 64)
            Me.Button2.Name = "Button2"
            Me.Button2.Size = New System.Drawing.Size(136, 23)
            Me.Button2.TabIndex = 1
            Me.Button2.Text = "Button2"
            '
            'Button3
            '
            Me.Button3.Location = New System.Drawing.Point(272, 96)
            Me.Button3.Name = "Button3"
            Me.Button3.Size = New System.Drawing.Size(136, 23)
            Me.Button3.TabIndex = 2
            Me.Button3.Text = "Button3"
            '
            'ListBox1
            '
            Me.ListBox1.Location = New System.Drawing.Point(16, 16)
            Me.ListBox1.Name = "ListBox1"
            Me.ListBox1.Size = New System.Drawing.Size(240, 238)
            Me.ListBox1.TabIndex = 5
            '
            'Button4
            '
            Me.Button4.Location = New System.Drawing.Point(272, 128)
            Me.Button4.Name = "Button4"
            Me.Button4.Size = New System.Drawing.Size(136, 23)
            Me.Button4.TabIndex = 3
            Me.Button4.Text = "Button4"
            '
            'Button5
            '
            Me.Button5.Location = New System.Drawing.Point(272, 160)
            Me.Button5.Name = "Button5"
            Me.Button5.Size = New System.Drawing.Size(136, 23)
            Me.Button5.TabIndex = 4
            Me.Button5.Text = "Button5"
            '
            'Button1
            '
            Me.Button1.Location = New System.Drawing.Point(272, 32)
            Me.Button1.Name = "Button1"
            Me.Button1.Size = New System.Drawing.Size(136, 23)
            Me.Button1.TabIndex = 0
            Me.Button1.Text = "Button1"
            '
            'Button6
            '
            Me.Button6.Location = New System.Drawing.Point(272, 192)
            Me.Button6.Name = "Button6"
            Me.Button6.Size = New System.Drawing.Size(136, 23)
            Me.Button6.TabIndex = 6
            Me.Button6.Text = "Button6"
            '
            'Form1
            '
            Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
            Me.ClientSize = New System.Drawing.Size(416, 341)
            Me.Controls.AddRange(New System.Windows.Forms.Control() _
               {Me.Button6, Me.ListBox1, Me.Button5, Me.Button4, _
               Me.Button3, Me.Button2, Me.Button1})
            Me.Name = "Form1"
            Me.Text = "Form1"
            Me.ResumeLayout(False)
    
        End Sub
    
    #End Region
    
        Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) _
          Handles MyBase.Load
            Me.Button1.Text = "Read Text File"
            Me.Button2.Text = "Write Text File"
            Me.Button3.Text = "View File Information"
            Me.Button4.Text = "List Drives"
            Me.Button5.Text = "List Subfolders"
            Me.Button6.Text = "List Files"
            winDir = System.Environment.GetEnvironmentVariable("windir")
        End Sub
    
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
          Handles Button1.Click
            'Demonstrates how to read a file by using StreamReader 
            'Uses System.ini as an example
            'try...catch is used to detect a 0 byte file.
            Dim reader As StreamReader = _
                New StreamReader(winDir & "\system.ini")
            Try
                Me.ListBox1.Items.Clear()
                Do 'Until reader.Peek = -1
                    Me.ListBox1.Items.Add(reader.ReadLine)
                Loop Until reader.Peek = -1
    
            Catch
                Me.ListBox1.Items.Add("File is empty")
    
            Finally
                reader.Close()
            End Try
        End Sub
    
        Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
          Handles Button4.Click
            'Demonstrates how to obtain a list of disk drives
            Dim dirInfo As Directory
            Dim drive As String
            Me.ListBox1.Items.Clear()
            Dim drives() As String = dirInfo.GetLogicalDrives()
            For Each drive In drives
                Me.ListBox1.Items.Add(drive)
            Next
        End Sub
    
        Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
          Handles Button3.Click
            'Demonstrates how to access file properties. You can access folder properties
            'in the same way. More properties are available through the FileInfo class
            'than are demonstrated here. 
            'You can also use the Directory class to obtain this information. 
            Dim FileProps As FileInfo = New FileInfo(winDir & "\notepad.exe")
            With Me.ListBox1.Items
                .Clear()
                .Add("File Name = " & FileProps.FullName)
                .Add("Creation Time = " & FileProps.CreationTime)
                .Add("Last Access Time = " & FileProps.LastAccessTime)
                .Add("Last Write TIme = " & FileProps.LastWriteTime)
                .Add("Size = " & FileProps.Length)
            End With
            FileProps = Nothing
        End Sub
    
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
          Handles Button2.Click
            'Demonstrates how to create and write to a text file
            Dim writer As StreamWriter = _
                New StreamWriter("c:\KBTest.txt")
            writer.WriteLine("File created using StreamWriter class.")
            writer.Close()
            Me.ListBox1.Items.Clear()
            Me.ListBox1.Items.Add("File Written to C:\KBTest.txt")
        End Sub
    
        Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
          Handles Button5.Click
            'Demonstrates how to get a list of folders (example uses Windows folder)
            Dim dir As String
            Me.ListBox1.Items.Clear()
            Dim dirs() As String = Directory.GetDirectories(winDir)
            For Each dir In dirs
                Me.ListBox1.Items.Add(dir)
            Next
        End Sub
    
        Private Sub Button6_Click(ByVal sender As Object, ByVal e As System.EventArgs) _
          Handles Button6.Click
            'Demonstrates how to get a list of files (example uses Windows folder)
            Dim file As String
            Me.ListBox1.Items.Clear()
            Dim files() As String = Directory.GetFiles(winDir)
            For Each file In files
                Me.ListBox1.Items.Add(file)
            Next
        End Sub
    End Class
    					
    Not Visual Basic 2005 kodu değiştirmeniz gerekir. Varsayılan olarak, bir Windows Forms projesi oluşturduğunuzda Visual Basic projesi için iki dosya oluşturur. Form1 formu adı ise, formu temsil eden iki dosya Form1.vb ve Form1.Designer.vb olarak adlandırılır. Form1.vb dosyasında kod yazın. Windows Form Tasarımcısı Form1.Designer.vb dosyasında kod yazar. Windows Form Tasarımcısı, Form1 uygulamasının iki ayrı dosyaya bölmek için partial anahtar kullanır. Bu davranış, kodunuz ile interspersed üretilen kod engeller.

    Visual Basic 2005 dil yenilikler hakkında daha fazla bilgi için aşağıdaki Microsoft Developer Network (MSDN) Web sitesini ziyaret edin:
    http://msdn2.microsoft.com/en-us/library/ms379584 (vs.80) .aspx
    Parçalı sınıflar ile Windows Form Tasarımcısı hakkında daha fazla bilgi için aşağıdaki MSDN Web sitesini ziyaret edin:
    http://msdn2.microsoft.com/en-us/library/ms171843.aspx
  5. Derlemek ve çalıştırmak için F5 tuşuna basın. Farklı eylemleri görüntülemek için düğmeleri tıklatın. Örnek kod görüntülediğinizde Windows Form Tasarımcısı üretilen bu kodu gizlemek için kod adlı alanı daraltmak isteyebilirsiniz.

Özellikler

Makale numarası: 304427 - Last Review: 28 Haziran 2013 Cuma - Gözden geçirme: 4.0
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
Anahtar Kelimeler: 
kbvs2005swept kbvs2005applies kbhowtomaster kbnokeyword kbprod2web kbmt KB304427 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, Microsoft Makine Çevirisi Düzenleme yazılımı tarafından tercüme edilmiş olup, yüksek olasılıkla profesyonel bir çevirmen yerine CTF teknolojisi kullanılarak, Microsoft Topluluğu tarafından düzenlenmiştir. Microsoft, Bilgi Bankamız içindeki tüm makaleleri kendi dilinizde okuyabilmeniz için size hem profesyonel çevirmenler tarafından tercüme edilen hem de makine tarafından tercüme edildikten sonra Topluluk tarafından kontrol edilen makaleler sunar. Bununla birlikte, makine tarafından tercüme edilen, hatta Topluluk tarafından kontrol edilen bir makale bile her zaman mükemmel dil kalitesinde olmayabilir. Makalede dilinizi konuşan yabancı birisinin yapabileceği türden sözcük, söz dizimi veya dilbilgisi hataları bulunabilir. Microsoft, içeriğin hatalı tercümesinin veya müşterilerimiz tarafından kullanımının doğurabileceği olası yanlış anlamalar, hatalar veya zararlardan sorumlu değildir. Öte yandan Microsoft, Makine Çevirisi Düzenleme işlemini geliştirmek amacıyla Makine Çevirisi Düzenleme yazılımını ve araçlarını sık sık güncelleştirmektedir.
Makalenin İngilizcesi aşağıdaki gibidir: 304427

Geri Bildirim Ver

 

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