FileDialog Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Apresenta uma caixa de diálogo a partir da qual o utilizador pode selecionar um ficheiro.
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
- Herança
- Derivado
Exemplos
O exemplo de código seguinte utiliza a OpenFileDialog implementação e FileDialog ilustra a criação, definição de propriedades e a apresentação da caixa de diálogo. O exemplo usa o ShowDialog método para mostrar a caixa de diálogo e devolver o DialogResult. O exemplo requer um formulário com um colocado Button e o System.IO espaço de nomes adicionado a ele.
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
Observações
FileDialog é uma classe abstrata que contém comportamento comum para as OpenFileDialog classes e SaveFileDialog . Não é destinado a ser usado diretamente, mas contém comportamentos comuns para essas duas classes. Não pode criar uma instância de FileDialog. Embora a classe seja declarada pública, não podes herdar dela, pois contém métodos abstratos internos. Para criar uma caixa de diálogo para selecionar ou guardar um ficheiro, use OpenFileDialog ou SaveFileDialog.
FileDialog é uma caixa de diálogo modal; Portanto, quando mostrado, bloqueia o resto da aplicação até que o utilizador tenha escolhido um ficheiro. Quando uma caixa de diálogo é apresentada de forma modal, não pode ocorrer qualquer entrada (clique do teclado ou do rato) exceto para objetos na caixa de diálogo. O programa tem de esconder ou fechar a caixa de diálogo (normalmente em resposta a alguma ação do utilizador) antes que a entrada do programa que chama possa ocorrer.
Atenção
Quando usas classes derivadas de FileDialog, como OpenFileDialog e SaveFileDialog, evita usar literais de string que contenham caminhos absolutos. Em vez disso, obtém dinamicamente o caminho usando uma ou mais das técnicas descritas na tabela seguinte.
Se quiser permitir que os utilizadores selecionem uma pasta em vez de um ficheiro, use o FolderBrowserDialogarquivo .
Dependendo do tipo de aplicação, da forma como os dados associados à aplicação são armazenados e da razão para aceder ao sistema de ficheiros, existem muitas formas possíveis de criar um caminho de diretório. A tabela seguinte mostra as técnicas para criar caminhos de forma dinâmica.
| Caminho ou categoria do programa | Classe e membros a utilizar |
|---|---|
| Caminhos padrão do Windows, como Program Files, MyDocuments, o Ambiente de Trabalho e assim por diante | A System.Environment classe é a fonte mais completa para estes, seja através dos seus métodos estáticos, como SystemDirectory, ou através do GetFolderPath método, usando um dos Environment.SpecialFolder valores enumerados. |
| Caminhos relacionados com a aplicação atual | A Application classe tem elementos estáticos para obter certos caminhos, como StartupPath, ExecutablePath, LocalUserAppDataPath, e CommonAppDataPath. O GetTempPath método do System.IO.Path devolve o caminho da pasta temporária. O GetCurrentDirectory método da System.IO.Directory classe devolve o diretório atual em execução da aplicação. A RootDirectory propriedade da DriveInfo classe representa o diretório raiz do disco especificado. |
| Caminhos armazenados como definições de aplicação | Acede à propriedade correspondente de definições de aplicações da classe wrapper derivada de ApplicationSettingsBase. Para mais informações, consulte as Definições Application para Windows Forms. |
| Armazenamento de registo | Algumas aplicações armazenam informação de diretórios no registo. A Application classe tem as CommonAppDataPath propriedades e LocalUserAppDataPath que resolvem para um RegistryKey valor. |
| Aplicações ClickOnce | Para aplicações ClickOnce, use Application membros de classe como UserAppDataPath, que devolverá um ponteiro para o diretório de dados ClickOnce. Para mais informações, consulte Acesso a Dados Locais e Remotos em Aplicações ClickOnce. |
| Aplicações internacionais | Para aplicações internacionais, recupere a parte do caminho relativo a partir de um recurso de string na sua aplicação usando a System.Resources.ResourceReader classe. Para mais informações sobre globalização e localização, consulte o tópico Globalização e Localização. |
Note que um caminho completo pode ser construído usando uma ou mais das técnicas descritas. Por exemplo, o GetFolderPath método pode ser usado para obter o caminho para a pasta MyDocuments, depois pode ser usada uma configuração de aplicação para adicionar uma parte relativa do subdiretório.
A System.IO.Path classe contém elementos estáticos para ajudar na manipulação de cadeias de caminhos absolutas e relativas, enquanto as System.IO.File classes e System.IO.Directory têm membros estáticos que manipulam ficheiros e diretórios, respetivamente.
Importante
Se o utilizador da sua aplicação alterar a pasta no FileDialog, então o diretório de trabalho atual da sua aplicação é definido para a localização especificada no FileDialog. Para evitar isto, defina a RestoreDirectory propriedade para true.
Campos
| Name | Description |
|---|---|
| EventFileOk |
É dono do FileOk evento. |
Propriedades
| Name | Description |
|---|---|
| AddExtension |
Recebe ou define um valor que indica se a caixa de diálogo adiciona automaticamente uma extensão a um nome de ficheiro caso o utilizador omita essa extensão. |
| AutoUpgradeEnabled |
Recebe ou define um valor que indica se esta instância FileDialog deve atualizar automaticamente a aparência e o comportamento ao correr em Windows Vista. |
| CanRaiseEvents |
Obtém um valor que indica se o componente pode gerar um evento. (Herdado de Component) |
| CheckFileExists |
Recebe ou define um valor que indica se a caixa de diálogo apresenta um aviso se o utilizador especificar um nome de ficheiro que não existe. |
| CheckPathExists |
Recebe ou define um valor que indica se a caixa de diálogo apresenta um aviso se o utilizador especificar um caminho que não existe. |
| Container |
Obtém o IContainer que contém o Component. (Herdado de Component) |
| CustomPlaces |
Recebe a coleção de lugares personalizados neste FileDialog caso. |
| DefaultExt |
Obtém ou define a extensão padrão do nome do ficheiro. |
| DereferenceLinks |
Recebe ou define um valor que indica se a caixa de diálogo devolve a localização do ficheiro referenciado pelo atalho ou se devolve a localização do atalho (.lnk). |
| DesignMode |
Obtém um valor que indica se o Component está atualmente em modo de design. (Herdado de Component) |
| Events |
Obtém a lista de gestores de eventos que estão ligados a isto Component. (Herdado de Component) |
| FileName |
Obtém ou define uma string contendo o nome do ficheiro selecionado na caixa de diálogo do ficheiro. |
| FileNames |
Obtém os nomes dos ficheiros de todos os ficheiros selecionados na caixa de diálogo. |
| Filter |
Recebe ou define a cadeia de filtro do nome de ficheiro atual, que determina as opções que aparecem na caixa "Guardar como tipo de ficheiro" ou "Ficheiros do tipo" na caixa de diálogo. |
| FilterIndex |
Obtém ou define o índice do filtro atualmente selecionado na caixa de diálogo do ficheiro. |
| InitialDirectory |
Obtém ou define o diretório inicial apresentado pela caixa de diálogo do ficheiro. |
| Instance |
Obtém o controlo da instância Win32 para a aplicação. |
| Options |
Obtém valores para inicializar o FileDialog. |
| RestoreDirectory |
Recebe ou define um valor que indica se a caixa de diálogo restaura o diretório para o diretório previamente selecionado antes de fechar. |
| ShowHelp |
Recebe ou define um valor que indica se o botão Ajuda é exibido na caixa de diálogo do ficheiro. |
| Site |
Obtém ou define o ISite do Component. (Herdado de Component) |
| SupportMultiDottedExtensions |
Obtém ou define se a caixa de diálogo suporta mostrar e guardar ficheiros com múltiplas extensões de nomes de ficheiro. |
| Tag |
Obtém ou define um objeto que contém dados sobre o controlo. (Herdado de CommonDialog) |
| Title |
Recebe ou define o título da caixa de diálogo do ficheiro. |
| ValidateNames |
Recebe ou define um valor que indica se a caixa de diálogo aceita apenas nomes válidos de ficheiros Win32. |
Métodos
| Name | Description |
|---|---|
| CreateObjRef(Type) |
Cria um objeto que contém toda a informação relevante necessária para gerar um proxy usado para comunicar com um objeto remoto. (Herdado de MarshalByRefObject) |
| Dispose() |
Liberta todos os recursos utilizados pelo Component. (Herdado de Component) |
| Dispose(Boolean) |
Liberta os recursos não geridos usados pelo Component e opcionalmente liberta os recursos geridos. (Herdado de Component) |
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| GetHashCode() |
Serve como função de hash predefinida. (Herdado de Object) |
| GetLifetimeService() |
Recupera o objeto de serviço de tempo de vida atual que controla a política de vida útil neste caso. (Herdado de MarshalByRefObject) |
| GetService(Type) |
Devolve um objeto que representa um serviço fornecido pelo Component ou pelo seu Container. (Herdado de Component) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| HookProc(IntPtr, Int32, IntPtr, IntPtr) |
Define o procedimento comum de gancho da caixa de diálogo que é sobreposto para adicionar funcionalidades específicas à caixa de diálogo do ficheiro. |
| InitializeLifetimeService() |
Obtém-se um objeto de serviço vitalício para controlar a apólice vitalícia neste caso. (Herdado de MarshalByRefObject) |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| MemberwiseClone(Boolean) |
Cria uma cópia superficial do objeto atual MarshalByRefObject . (Herdado de MarshalByRefObject) |
| OnFileOk(CancelEventArgs) |
Eleva o FileOk evento. |
| OnHelpRequest(EventArgs) |
Eleva o HelpRequest evento. (Herdado de CommonDialog) |
| OwnerWndProc(IntPtr, Int32, IntPtr, IntPtr) |
Define o procedimento da janela proprietária que é sobreposto para adicionar funcionalidades específicas a uma caixa de diálogo comum. (Herdado de CommonDialog) |
| Reset() |
Reinicia todas as propriedades para os seus valores padrão. |
| RunDialog(IntPtr) |
Especifica uma caixa de diálogo comum. |
| ShowDialog() |
Executa uma caixa de diálogo comum com um proprietário padrão. (Herdado de CommonDialog) |
| ShowDialog(IWin32Window) |
Executa uma caixa de diálogo comum com o proprietário especificado. (Herdado de CommonDialog) |
| ToString() |
Fornece uma versão string deste objeto. |
evento
| Name | Description |
|---|---|
| Disposed |
Ocorre quando o componente é eliminado por uma chamada ao Dispose() método. (Herdado de Component) |
| FileOk |
Ocorre quando o utilizador clica no botão Abrir ou Guardar numa caixa de diálogo de ficheiros. |
| HelpRequest |
Ocorre quando o utilizador clica no botão Ajuda numa caixa de diálogo comum. (Herdado de CommonDialog) |