Condividi tramite


Procedura: aprire file con il componente OpenFileDialog

Aggiornamento: novembre 2007

Il componente OpenFileDialog consente di sfogliare le cartelle del proprio computer o di altri computer in rete e di selezionare uno o più file da aprire. Nella finestra di dialogo vengono restituiti il percorso e il nome del file selezionato dall'utente.

Una volta selezionato il file da aprire, è possibile procedere all'apertura del file in due modi. Se si preferisce utilizzare flussi di file, creare un'istanza della classe StreamReader. In alternativa, è possibile utilizzare il metodo OpenFile per aprire il file selezionato.

Nel primo esempio qui di seguito, è previsto un controllo di autorizzazione FileIOPermission, come descritto nella "Nota sulla protezione", ma viene consentito l'accesso al nome file. Questa tecnica può essere utilizzata dal computer locale, dalla Intranet e da Internet. Anche il secondo metodo prevede un controllo di autorizzazione FileIOPermission, ma è più indicato per applicazioni in area Intranet o Internet.

Per aprire un file come flusso mediante il componente OpenFileDialog

  • Aprire la finestra di dialogo Apri file e chiamare un metodo per aprire il file selezionato dall'utente.

    Un approccio consiste nell'utilizzo del metodo ShowDialog per visualizzare la finestra di dialogo Apri file e di un'istanza della classe StreamReader per aprire il file.

    Nell'esempio che segue viene utilizzato il gestore eventi Click del controllo Button per aprire un'istanza del componente OpenFileDialog. Quando viene scelto un file e l'utente fa clic su OK, il file selezionato nella finestra di dialogo si apre. In questo caso, il contenuto viene visualizzato in una finestra di messaggio per indicare che il flusso di file è stato letto.

    Nota sulla sicurezza:

    Per ottenere o impostare la proprietà FileName, l'assembly richiede un livello di privilegio concesso dalla classe System.Security.Permissions.FileIOPermission. Se viene eseguito in un contesto ad affidabilità parziale, il processo potrebbe generare un'eccezione a causa dell'insufficienza di privilegi. Per ulteriori informazioni, vedere Nozioni fondamentali sulla protezione dall'accesso di codice.

    Nell'esempio si presuppone che il form contenga un controllo Button e un componente OpenFileDialog.

    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# e Visual C++) Inserire il codice seguente nel costruttore del form per registrare il gestore eventi.

    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);
    
    Nota:

    Per ulteriori informazioni sulla lettura da flussi di file, vedere Metodo FileStream.BeginRead e Metodo FileStream.Read.

Per aprire un file come file mediante il componente OpenFileDialog

  • Utilizzare il metodo ShowDialog per visualizzare la finestra di dialogo e il metodo OpenFile per aprire il file.

    Il metodo OpenFile del componente OpenFileDialog restituisce i byte che compongono il file e che forniscono un flusso da cui leggere. Nell'esempio che segue, viene creata un'istanza del componente OpenFileDialog con un filtro cursore su di esso, per consentire all'utente di scegliere solo i file con estensione .cur. Se si sceglie un file .cur , il cursore del form viene impostato sul cursore selezionato.

    Nota sulla sicurezza:

    Per chiamare il metodo OpenFile, l'assembly richiede un livello di privilegio concesso dalla classe System.Security.Permissions.FileIOPermission. Se viene eseguito in un contesto ad affidabilità parziale, il processo potrebbe generare un'eccezione a causa dell'insufficienza di privilegi. Per ulteriori informazioni, vedere Nozioni fondamentali sulla protezione dall'accesso di codice.

    Nell'esempio si presuppone che il form contenga un controllo Button.

    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# e Visual C++) Inserire il codice seguente nel costruttore del form per registrare il gestore eventi.

    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);
    

Vedere anche

Riferimenti

OpenFileDialog

Altre risorse

Componente OpenFileDialog (Windows Form)