Condividi tramite


FileDialog Classe

Definizione

Visualizza una finestra di dialogo da cui l'utente può selezionare un file.

public ref class FileDialog abstract : System::Windows::Forms::CommonDialog
public abstract class FileDialog : System.Windows.Forms.CommonDialog
type FileDialog = class
    inherit CommonDialog
Public MustInherit Class FileDialog
Inherits CommonDialog
Ereditarietà
Derivato

Esempio

Nell'esempio di codice seguente viene utilizzata l'implementazione di FileDialog e viene illustrata la OpenFileDialog creazione, l'impostazione delle proprietà e la visualizzazione della finestra di dialogo. Nell'esempio viene utilizzato il ShowDialog metodo per visualizzare la finestra di dialogo e restituire .DialogResult L'esempio richiede un form con un Button oggetto posizionato su di esso e lo System.IO spazio dei nomi aggiunto.

private:
   void button1_Click( Object^ /*sender*/, System::EventArgs^ /*e*/ )
   {
      Stream^ myStream;
      OpenFileDialog^ openFileDialog1 = gcnew OpenFileDialog;

      openFileDialog1->InitialDirectory = "c:\\";
      openFileDialog1->Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
      openFileDialog1->FilterIndex = 2;
      openFileDialog1->RestoreDirectory = true;

      if ( openFileDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK )
      {
         if ( (myStream = openFileDialog1->OpenFile()) != nullptr )
         {
            // Insert code to read the stream here.
            myStream->Close();
         }
      }
   }
var fileContent = string.Empty;
var filePath = string.Empty;

using (OpenFileDialog openFileDialog = new OpenFileDialog())
{
    openFileDialog.InitialDirectory = "c:\\";
    openFileDialog.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
    openFileDialog.FilterIndex = 2;
    openFileDialog.RestoreDirectory = true;

    if (openFileDialog.ShowDialog() == DialogResult.OK)
    {
        //Get the path of specified file
        filePath = openFileDialog.FileName;

        //Read the contents of the file into a stream
        var fileStream = openFileDialog.OpenFile();

        using (StreamReader reader = new StreamReader(fileStream))
        {
            fileContent = reader.ReadToEnd();
        }
    }
}

MessageBox.Show(fileContent, "File Content at path: " + filePath, MessageBoxButtons.OK);
Private Sub button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
    Dim myStream As Stream = Nothing
    Dim openFileDialog1 As New OpenFileDialog()

    openFileDialog1.InitialDirectory = "c:\"
    openFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"
    openFileDialog1.FilterIndex = 2
    openFileDialog1.RestoreDirectory = True

    If openFileDialog1.ShowDialog() = System.Windows.Forms.DialogResult.OK Then
        Try
            myStream = openFileDialog1.OpenFile()
            If (myStream IsNot Nothing) Then
                ' Insert code to read the stream here.
            End If
        Catch Ex As Exception
            MessageBox.Show("Cannot read file from disk. Original error: " & Ex.Message)
        Finally
            ' Check this again, since we need to make sure we didn't throw an exception on open.
            If (myStream IsNot Nothing) Then
                myStream.Close()
            End If
        End Try
    End If
End Sub

Commenti

FileDialog è una classe astratta che contiene un comportamento comune per le OpenFileDialog classi e SaveFileDialog . Non è progettato per essere usato direttamente, ma contiene un comportamento comune per queste due classi. Non è possibile creare un'istanza di FileDialog. Anche se la classe è dichiarata pubblica, non è possibile ereditarla, perché contiene metodi astratti interni. Per creare una finestra di dialogo per selezionare o salvare un file, usare OpenFileDialog o SaveFileDialog.

FileDialog è una finestra di dialogo modale; pertanto, quando visualizzato, blocca il resto dell'applicazione fino a quando l'utente non ha scelto un file. Quando viene visualizzata una finestra di dialogo in modalità modally, non può verificarsi alcun input (tastiera o clic del mouse) tranne che per gli oggetti nella finestra di dialogo. Il programma deve nascondere o chiudere la finestra di dialogo (in genere in risposta a un'azione dell'utente) prima che l'input al programma chiamante possa verificarsi.

Attenzione

Quando si usano classi derivate da FileDialog, ad esempio OpenFileDialog e SaveFileDialog, evitare di usare valori letterali stringa contenenti percorsi assoluti. Ottenere invece in modo dinamico il percorso usando una o più delle tecniche descritte nella tabella seguente.

Se si vuole consentire agli utenti di selezionare una cartella anziché un file, usare .FolderBrowserDialog

A seconda del tipo di applicazione, della modalità di archiviazione dei dati associati all'applicazione e del motivo dell'accesso al file system, esistono molti modi possibili in cui è possibile creare un percorso di directory. La tabella seguente illustra le tecniche per la creazione dinamica dei percorsi.

Categoria percorso o programma Classe e membri da usare
Percorsi di Windows standard, ad esempio Programmi, MyDocuments, Desktop e così via La System.Environment classe è l'origine più completa per queste, tramite i relativi metodi statici, ad esempio SystemDirectory, o tramite il GetFolderPath metodo , usando uno dei Environment.SpecialFolder valori enumerati.
Percorsi correlati all'applicazione corrente La Application classe dispone di membri statici per ottenere determinati percorsi, ad esempio StartupPath, ExecutablePathLocalUserAppDataPath, e CommonAppDataPath.

Il GetTempPath metodo di System.IO.Path restituisce il percorso della cartella temporanea.

Il GetCurrentDirectory metodo della System.IO.Directory classe restituisce la directory in esecuzione corrente dell'applicazione.

La RootDirectory proprietà della DriveInfo classe rappresenta la directory radice dell'unità specificata.
Percorsi archiviati come impostazioni dell'applicazione Accedere alla proprietà delle impostazioni delle applicazioni corrispondenti della classe wrapper derivata da ApplicationSettingsBase. Per altre informazioni, vedere Impostazioni dell'applicazione per Windows Form.
Archiviazione del Registro di sistema Alcune applicazioni archiviano le informazioni sulla directory nel Registro di sistema. La Application classe ha le CommonAppDataPath proprietà e LocalUserAppDataPath che si risolvono in un RegistryKey valore.
Applicazioni ClickOnce Per le applicazioni ClickOnce, usare Application membri della classe, UserAppDataPathad esempio , che restituirà un puntatore alla directory dei dati ClickOnce. Per altre informazioni, vedere Accesso ai dati locali e remoti nelle applicazioni ClickOnce.
Applicazioni internazionali Per le applicazioni internazionali, recuperare la parte relativa del percorso da una risorsa stringa nell'applicazione usando la System.Resources.ResourceReader classe . Per altre informazioni sulla globalizzazione e la localizzazione, vedere l'argomento Globalizzazione e localizzazione.

Si noti che un percorso completo può essere compilato usando una o più delle tecniche descritte. Ad esempio, è possibile usare il GetFolderPath metodo per ottenere il percorso della cartella MyDocuments, quindi è possibile usare un'impostazione dell'applicazione per aggiungere una parte relativa della sottodirectory.

La System.IO.Path classe contiene membri statici per facilitare la modifica di stringhe di percorso assoluto e relativo, mentre le System.IO.File classi e System.IO.Directory dispongono rispettivamente di membri statici che modificano file e directory.

Importante

Se l'utente dell'applicazione modifica la cartella in FileDialog, la directory di lavoro corrente per l'applicazione viene impostata sul percorso specificato in FileDialog. Per evitare questo problema, impostare la RestoreDirectory proprietà su true.

Campi

Nome Descrizione
EventFileOk

È proprietario dell'evento FileOk .

Proprietà

Nome Descrizione
AddExtension

Ottiene o imposta un valore che indica se la finestra di dialogo aggiunge automaticamente un'estensione a un nome file se l'utente omette l'estensione.

AddToRecent

Ottiene o imposta un valore che indica se la finestra di dialogo aggiunge il file da aprire o salvare nell'elenco recente.

AutoUpgradeEnabled

Ottiene o imposta un valore che indica se questa FileDialog istanza deve aggiornare automaticamente l'aspetto e il comportamento durante l'esecuzione in Windows Vista.

CanRaiseEvents

Ottiene un valore che indica se il componente può generare un evento.

(Ereditato da Component)
CheckFileExists

Ottiene o imposta un valore che indica se nella finestra di dialogo viene visualizzato un avviso se l'utente specifica un nome di file che non esiste.

CheckPathExists

Ottiene o imposta un valore che indica se nella finestra di dialogo viene visualizzato un avviso se l'utente specifica un percorso che non esiste.

ClientGuid

Ottiene o imposta il GUID da associare a questo stato del dialogo. In genere, lo stato, ad esempio l'ultima cartella visitata e la posizione e le dimensioni del dialogo, vengono mantenuti in base al nome del file eseguibile. Specificando un GUID, un'applicazione può avere stati persistenti diversi per versioni diverse della finestra di dialogo all'interno della stessa applicazione, ad esempio una finestra di dialogo di importazione e una finestra di dialogo aperta.

Questa funzionalità non è disponibile se un'applicazione non usa stili di visualizzazione o se AutoUpgradeEnabled è impostata su false.

Container

Ottiene l'oggetto IContainer contenente l'oggetto Component.

(Ereditato da Component)
CustomPlaces

Ottiene la raccolta di posizioni personalizzate per questa FileDialog istanza.

DefaultExt

Ottiene o imposta l'estensione del nome file predefinita.

DereferenceLinks

Ottiene o imposta un valore che indica se la finestra di dialogo restituisce il percorso del file a cui fa riferimento il collegamento o se restituisce il percorso del collegamento (.lnk).

DesignMode

Ottiene un valore che indica se è Component attualmente in modalità progettazione.

(Ereditato da Component)
Events

Ottiene l'elenco dei gestori eventi associati a questo Componentoggetto .

(Ereditato da Component)
FileName

Ottiene o imposta una stringa contenente il nome file selezionato nella finestra di dialogo file.

FileNames

Ottiene i nomi di file di tutti i file selezionati nella finestra di dialogo.

Filter

Ottiene o imposta la stringa di filtro del nome file corrente, che determina le scelte visualizzate nella casella "Salva come file di tipo" o "File di tipo" nella finestra di dialogo.

FilterIndex

Ottiene o imposta l'indice del filtro attualmente selezionato nella finestra di dialogo file.

InitialDirectory

Ottiene o imposta la directory iniziale visualizzata dalla finestra di dialogo file.

Instance

Ottiene l'handle dell'istanza Win32 per l'applicazione.

OkRequiresInteraction

Ottiene o imposta un valore che indica se il pulsante OK della finestra di dialogo è disabilitato fino a quando l'utente non naviga nella visualizzazione o modifica il nome file (se applicabile).

Options

Ottiene i valori per inizializzare l'oggetto FileDialog.

RestoreDirectory

Ottiene o imposta un valore che indica se la finestra di dialogo ripristina la directory nella directory selezionata in precedenza prima della chiusura.

ShowHelp

Ottiene o imposta un valore che indica se il pulsante ? viene visualizzato nella finestra di dialogo file.

ShowHiddenFiles

Ottiene o imposta un valore che indica se nella finestra di dialogo vengono visualizzati file nascosti e di sistema.

ShowPinnedPlaces

Ottiene o imposta un valore che indica se gli elementi visualizzati per impostazione predefinita nel riquadro di spostamento della visualizzazione vengono visualizzati.

Site

Ottiene o imposta l'oggetto ISite dell'oggetto Component.

(Ereditato da Component)
SupportMultiDottedExtensions

Ottiene o imposta un valore che indica se la finestra di dialogo supporta la visualizzazione e il salvataggio di file con più estensioni di file.

Tag

Ottiene o imposta un oggetto che contiene dati sul controllo.

(Ereditato da CommonDialog)
Title

Ottiene o imposta il titolo della finestra di dialogo del file.

ValidateNames

Ottiene o imposta un valore che indica se la finestra di dialogo accetta solo nomi di file Win32 validi.

Metodi

Nome Descrizione
CreateObjRef(Type)

Crea un oggetto che contiene tutte le informazioni pertinenti necessarie per generare un proxy utilizzato per comunicare con un oggetto remoto.

(Ereditato da MarshalByRefObject)
Dispose()

Rilascia tutte le risorse usate da Component.

(Ereditato da Component)
Dispose(Boolean)

Rilascia le risorse non gestite usate da Component e, facoltativamente, rilascia le risorse gestite.

(Ereditato da Component)
Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetLifetimeService()
Obsoleti.

Recupera l'oggetto servizio di durata corrente che controlla i criteri di durata per questa istanza.

(Ereditato da MarshalByRefObject)
GetService(Type)

Restituisce un oggetto che rappresenta un servizio fornito da Component o da Container.

(Ereditato da Component)
GetType()

Ottiene il Type dell'istanza corrente.

(Ereditato da Object)
HookProc(IntPtr, Int32, IntPtr, IntPtr)

Definisce la routine hook della finestra di dialogo comune sottoposta a override per aggiungere funzionalità specifiche alla finestra di dialogo file.

InitializeLifetimeService()
Obsoleti.

Ottiene un oggetto servizio di durata per controllare i criteri di durata per questa istanza.

(Ereditato da MarshalByRefObject)
MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
MemberwiseClone(Boolean)

Crea una copia superficiale dell'oggetto corrente MarshalByRefObject .

(Ereditato da MarshalByRefObject)
OnFileOk(CancelEventArgs)

Genera l'evento FileOk.

OnHelpRequest(EventArgs)

Genera l'evento HelpRequest.

(Ereditato da CommonDialog)
OwnerWndProc(IntPtr, Int32, IntPtr, IntPtr)

Definisce la routine della finestra di proprietario sottoposta a override per aggiungere funzionalità specifiche a una finestra di dialogo comune.

(Ereditato da CommonDialog)
Reset()

Reimposta tutti i valori predefiniti di tutte le proprietà.

RunDialog(IntPtr)

Specifica una finestra di dialogo comune.

ShowDialog()

Esegue una finestra di dialogo comune con un proprietario predefinito.

(Ereditato da CommonDialog)
ShowDialog(IWin32Window)

Esegue una finestra di dialogo comune con il proprietario specificato.

(Ereditato da CommonDialog)
ToString()

Fornisce una versione stringa di questo oggetto.

Eventi

Nome Descrizione
Disposed

Si verifica quando il componente viene eliminato da una chiamata al Dispose() metodo .

(Ereditato da Component)
FileOk

Si verifica quando l'utente fa clic sul pulsante Apri o Salva in una finestra di dialogo file.

HelpRequest

Si verifica quando l'utente fa clic sul pulsante ? in una finestra di dialogo comune.

(Ereditato da CommonDialog)

Si applica a

Vedi anche