Freigeben über


Gewusst wie: Öffnen von Dateien mit der OpenFileDialog-Komponente

Aktualisiert: November 2007

Mit der OpenFileDialog-Komponente können Benutzer die Ordner ihres Computers bzw. eines beliebigen Computers im Netzwerk durchsuchen und eine oder mehrere Dateien öffnen. Das Dialogfeld gibt den Pfad und den Namen der ausgewählten Datei zurück.

Sobald der Benutzer die Datei ausgewählt hat, die geöffnet werden soll, gibt es zwei Möglichkeiten für das Öffnen der Datei. Wenn Sie bevorzugt mit Dateistreams arbeiten, können Sie eine Instanz der StreamReader-Klasse erstellen. Alternativ dazu können Sie die OpenFile-Methode zum Öffnen der ausgewählten Datei verwenden.

Das erste unten stehende Beispiel enthält FileIOPermission zur Überprüfung der Berechtigungen (wie im Sicherheitshinweis unten beschrieben), ermöglicht jedoch den Zugriff auf den Dateinamen. Diese Vorgehensweise können Sie in der lokalen Zone sowie in der Intranet- und Internetzone verwenden. Die zweite Methode führt ebenfalls FileIOPermission zur Überprüfung der Berechtigungen durch, ist jedoch besser für Anwendungen in der Intranet- oder Internetzone geeignet.

So öffnen Sie eine Datei mit der OpenFileDialog-Komponente als Stream

  • Zeigen Sie das Dialogfeld Datei öffnen an, und rufen Sie eine Methode zum Öffnen der vom Benutzer ausgewählten Datei auf.

    Eine Möglichkeit ist die Verwendung der ShowDialog-Methode zum Anzeigen des Dialogfelds Datei öffnen sowie einer Instanz der StreamReader-Klasse zum Öffnen der Datei.

    Im folgenden Beispiel wird vom Click-Ereignishandler des Button-Steuerelements eine Instanz der OpenFileDialog-Komponente geöffnet. Wenn eine Datei ausgewählt wird und der Benutzer auf OK klickt, wird die im Dialogfeld markierte Datei geöffnet. In diesem Fall wird der Inhalt in einem Meldungsfeld angezeigt, um darüber zu informieren, dass der Dateistream gelesen wurde.

    Sicherheitshinweis:

    Zum Abrufen oder Festlegen der FileName-Eigenschaft muss die Assembly über eine von der System.Security.Permissions.FileIOPermission-Klasse gewährte Berechtigungsebene verfügen. Wenn die Ausführung in einer teilweise vertrauenswürdigen Umgebung erfolgt, kann der Vorgang aufgrund fehlender Berechtigungen eine Ausnahme auslösen. Weitere Informationen finden Sie unter Grundlagen der Codezugriffssicherheit.

    In diesem Beispiel wird davon ausgegangen, dass das Formular über ein Button-Steuerelement und eine OpenFileDialog-Komponente verfügt.

    Private Sub Button1_Click(ByVal sender As System.Object, _
       ByVal e As System.EventArgs) Handles Button1.Click
       If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
         Dim sr As New System.IO.StreamReader(OpenFileDialog1.FileName)
         MessageBox.Show(sr.ReadToEnd)
         sr.Close()
       End If
    End Sub
    
    private void button1_Click(object sender, System.EventArgs e)
    {
       if(openFileDialog1.ShowDialog() == DialogResult.OK)
       {
          System.IO.StreamReader sr = new 
             System.IO.StreamReader(openFileDialog1.FileName);
          MessageBox.Show(sr.ReadToEnd());
          sr.Close();
       }
    }
    
    private void button1_Click(Object sender, System.EventArgs e)
    {
       if(openFileDialog1.ShowDialog() == DialogResult.OK)
       {
          System.IO.StreamReader sr = new 
             System.IO.StreamReader(openFileDialog1.get_FileName());
          MessageBox.Show(sr.ReadToEnd());
          sr.Close();
       }
    }
    
    private:
       void button1_Click(System::Object ^ sender,
          System::EventArgs ^ e)
       {
          if(openFileDialog1->ShowDialog() == DialogResult::OK)
          {
             System::IO::StreamReader ^ sr = gcnew
                System::IO::StreamReader(openFileDialog1->FileName);
             MessageBox::Show(sr->ReadToEnd());
             sr->Close();
          }
       }
    

    (Visual C#, Visual J# und Visual C++) Fügen Sie den folgenden Code im Konstruktor des Formulars ein, um den Ereignishandler zu registrieren.

    this.button1.Click += new System.EventHandler(this.button1_Click);
    
    this.button1.add_Click(new System.EventHandler(this.button1_Click));
    
    this->button1->Click += gcnew
       System::EventHandler(this, &Form1::button1_Click);
    
    Hinweis:

    Weitere Informationen zum Lesen aus Dateistreams finden Sie unter FileStream.BeginRead-Methode und FileStream.Read-Methode.

So öffnen Sie eine Datei mit der OpenFileDialog-Komponente als Datei

  • Verwenden Sie die ShowDialog-Methode zum Anzeigen des Dialogfelds und die OpenFile-Methode zum Öffnen der Datei.

    Die OpenFile-Methode der OpenFileDialog-Komponente gibt die Bytes zurück, aus denen die Datei besteht. Diese Bytes bilden einen Stream, aus dem Sie Daten lesen können. Im nachfolgenden Beispiel wird eine OpenFileDialog-Komponente mit einem "Cursorfilter" instanziiert. Damit kann der Benutzer nur Dateien mit der Dateinamenerweiterung .cur auswählen. Wenn eine CUR-Datei ausgewählt wird, wird der Cursor in der ausgewählten Form angezeigt.

    Sicherheitshinweis:

    Zum Aufrufen der OpenFile-Methode benötigt die Assembly eine von der System.Security.Permissions.FileIOPermission-Klasse gewährte Berechtigungsebene. Wenn die Ausführung in einer teilweise vertrauenswürdigen Umgebung erfolgt, kann der Vorgang aufgrund fehlender Berechtigungen eine Ausnahme auslösen. Weitere Informationen finden Sie unter Grundlagen der Codezugriffssicherheit.

    In diesem Beispiel wird davon ausgegangen, dass das Formular über ein Button-Steuerelement verfügt.

    Private Sub Button1_Click(ByVal sender As System.Object, _
       ByVal e As System.EventArgs) Handles Button1.Click
       ' Displays an OpenFileDialog so the user can select a Cursor.
       Dim openFileDialog1 As New OpenFileDialog()
       openFileDialog1.Filter = "Cursor Files|*.cur"
       openFileDialog1.Title = "Select a Cursor File"
    
       ' Show the Dialog.
       ' If the user clicked OK in the dialog and 
       ' a .CUR file was selected, open it.
       If openFileDialog1.ShowDialog() = DialogResult.OK Then
         ' Assign the cursor in the Stream to the Form's Cursor property.
         Me.Cursor = New Cursor(openFileDialog1.OpenFile())
       End If
    End Sub
    
    private void button1_Click(object sender, System.EventArgs e)
    {
       // Displays an OpenFileDialog so the user can select a Cursor.
       OpenFileDialog openFileDialog1 = new OpenFileDialog();
       openFileDialog1.Filter = "Cursor Files|*.cur";
       openFileDialog1.Title = "Select a Cursor File";
    
       // Show the Dialog.
       // If the user clicked OK in the dialog and
       // a .CUR file was selected, open it.
        if (openFileDialog1.ShowDialog() == DialogResult.OK)
       {
          // Assign the cursor in the Stream to the Form's Cursor property.
          this.Cursor = new Cursor(openFileDialog1.OpenFile());
       }
    }
    
    private void button1_Click(Object sender, System.EventArgs e)
    {
       // Displays an OpenFileDialog so the user can select a Cursor.
       OpenFileDialog openFileDialog1 = new OpenFileDialog();
       openFileDialog1.set_Filter("Cursor Files|*.cur");
       openFileDialog1.set_Title("Select a Cursor File");
    
       // Show the Dialog.
       // If the user clicked OK in the dialog and
       // a .CUR file was selected, open it.
       if (openFileDialog1.ShowDialog() == DialogResult.OK)
       {
          // Assign the cursor in the Stream to the Form's Cursor property.
          this.set_Cursor(new Cursor(openFileDialog1.OpenFile()));
       }
    }
    
    private:
       void button1_Click(System::Object ^ sender,
          System::EventArgs ^ e)
       {
          // Displays an OpenFileDialog so the user can select a Cursor.
          OpenFileDialog ^ openFileDialog1 = new OpenFileDialog();
          openFileDialog1->Filter = "Cursor Files|*.cur";
          openFileDialog1->Title = "Select a Cursor File";
    
          // Show the Dialog.
          // If the user clicked OK in the dialog and
          // a .CUR file was selected, open it.
          if (openFileDialog1->ShowDialog() == DialogResult::OK)
          {
             // Assign the cursor in the Stream to
             // the Form's Cursor property.
             this->Cursor = gcnew
                System::Windows::Forms::Cursor(
                openFileDialog1->OpenFile());
          }
       }
    

    (Visual C#, Visual J# und Visual C++) Fügen Sie den folgenden Code im Konstruktor des Formulars ein, um den Ereignishandler zu registrieren.

    this.button1.Click += new System.EventHandler(this.button1_Click);
    
    this.button1.add_Click(new System.EventHandler(this.button1_Click));
    
    this->button1->Click += gcnew
       System::EventHandler(this, &Form1::button1_Click);
    

Siehe auch

Referenz

OpenFileDialog

Weitere Ressourcen

OpenFileDialog-Komponente (Windows Forms)