FileDialog Classe

Definizione

Visualizza una finestra di dialogo in 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

L'esempio di codice seguente usa l'implementazione di FileDialog e illustra la creazione, l'impostazione OpenFileDialog delle proprietà e la visualizzazione della finestra di dialogo. Nell'esempio viene usato il ShowDialog metodo per visualizzare la finestra di dialogo e restituire .DialogResult L'esempio richiede un modulo con un Button elemento 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 è destinato a 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 modally, non può verificarsi alcun input (tastiera o clic del mouse) ad eccezione di 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 dinamicamente il percorso usando una o più delle tecniche descritte nella tabella seguente.

Se si vuole abilitare gli utenti per selezionare una cartella anziché un file, usare .FolderBrowserDialog

A seconda del tipo di applicazione, la modalità di archiviazione dei dati associati all'applicazione e il motivo per l'accesso al file system, esistono molti modi possibili in cui è possibile creare un percorso di directory. Nella tabella seguente vengono illustrate le tecniche per la creazione di percorsi in modo dinamico.

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

Il metodo dell'oggetto GetTempPathSystem.IO.Path restituisce il percorso della cartella temporanea.

Il GetCurrentDirectory metodo della System.IO.Directory classe restituisce la directory corrente in esecuzione 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 applicazione per Windows Forms.
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 restituiscono 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 è possibile creare un percorso completo 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 di membri statici che modificano effettivamente file e directory, rispettivamente.

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

EventFileOk

Possiede l'evento FileOk.

Proprietà

AddExtension

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

AddToRecent

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

AutoUpgradeEnabled

Ottiene o imposta un valore che indica se questa istanza deve aggiornare automaticamente l'aspetto e il FileDialog 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 quando l'utente specifica un nome di file inesistente.

CheckPathExists

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

ClientGuid

Ottiene o imposta il GUID da associare allo stato della finestra di dialogo. In genere, gli stati come l'ultima cartella visitata e la posizione e le dimensioni della finestra di dialogo vengono mantenuti in base al nome del file eseguibile. Specificando un GUID, un'applicazione può avere stati permanenti 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 visivi o se AutoUpgradeEnabled è impostato su false.

Container

Ottiene l'oggetto IContainer che contiene Component.

(Ereditato da Component)
CustomPlaces

Ottiene l’insieme delle posizioni personalizzate per questa istanza di FileDialog.

DefaultExt

Ottiene o imposta l'estensione di file predefinita.

DereferenceLinks

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

DesignMode

Ottiene un valore che indica se il Component si trova in modalità progettazione.

(Ereditato da Component)
Events

Ottiene l'elenco dei gestori eventi allegati a questo Component.

(Ereditato da Component)
FileName

Ottiene o imposta una stringa che contiene il nome del file selezionato nella finestra di dialogo per la gestione dei file.

FileNames

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

Filter

Ottiene o imposta la stringa filtro del nome file corrente, che determina le scelte visualizzate nelle casella relative al tipo di file nella finestra di dialogo.

FilterIndex

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

InitialDirectory

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

Instance

Ottiene il punto di controllo 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 sposta la visualizzazione o modifica il nome file (se applicabile).

Options

Ottiene i valori per l'inizializzazione dell'oggetto FileDialog.

RestoreDirectory

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

ShowHelp

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

ShowHiddenFiles

Ottiene o imposta un valore che indica se la finestra di dialogo visualizza 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 vista vengono visualizzati.

Site

Ottiene o imposta l'oggetto ISite di 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.

Tag

Ottiene o imposta un oggetto che contiene i dati relativi al controllo.

(Ereditato da CommonDialog)
Title

Ottiene o imposta il titolo della finestra di dialogo per la gestione dei file.

ValidateNames

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

Metodi

CreateObjRef(Type)

Consente di creare un oggetto che contiene tutte le informazioni rilevanti necessarie per la generazione del proxy utilizzato per effettuare la comunicazione 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, 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.

Consente di recuperare l'oggetto servizio di durata corrente per controllare i criteri di durata per l'istanza.

(Ereditato da MarshalByRefObject)
GetService(Type)

Consente di restituire un oggetto che rappresenta un servizio fornito da Component o dal relativo Container.

(Ereditato da Component)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

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

Definisce la routine di hook della finestra di dialogo comune di cui viene eseguito l'override per aggiungere funzionalità specifiche a una finestra di dialogo per la gestione dei 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 dell'oggetto Object corrente.

(Ereditato da Object)
MemberwiseClone(Boolean)

Crea una copia dei riferimenti dell'oggetto MarshalByRefObject corrente.

(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 proprietaria di cui viene eseguito l'override per aggiungere funzionalità specifiche a una finestra di dialogo comune.

(Ereditato da CommonDialog)
Reset()

Reimposta tutte le proprietà sui valori predefiniti.

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 in formato stringa dell'oggetto.

Eventi

Disposed

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

(Ereditato da Component)
FileOk

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

HelpRequest

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

(Ereditato da CommonDialog)

Si applica a

Vedi anche