FileDialog Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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 |
| 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) |