Comment : ouvrir des fichiers à l'aide du composant OpenFileDialog
Mise à jour : novembre 2007
Le composant OpenFileDialog permet aux utilisateurs de parcourir les dossiers de leur ordinateur ou de n'importe quel ordinateur du réseau et de sélectionner un ou plusieurs fichiers à ouvrir. La boîte de dialogue retourne le chemin d'accès et le nom du fichier sélectionné dans la boîte de dialogue.
Une fois le fichier à ouvrir sélectionné, son ouverture peut être réalisée de deux manières. Si vous préférez travailler avec des flux de fichiers, vous pouvez créer une instance de la classe StreamReader. Sinon, vous pouvez utiliser la méthode OpenFile pour ouvrir le fichier sélectionné.
Le premier exemple ci-dessous implique une vérification d'autorisation FileIOPermission (comme décrit dans la « Remarque sur la sécurité » ci-dessous), mais vous donne accès au nom du fichier. Vous pouvez utiliser cette technique à partir de l'ordinateur local, de l'intranet et de zones Internet. La seconde méthode effectue également une vérification d'autorisation FileIOPermission, mais elle est mieux adaptée aux applications d'intranet ou de zones Internet.
Pour ouvrir un fichier en tant que flux à l'aide du composant OpenFileDialog
Affichez la boîte de dialogue Ouvrir un fichier et appelez une méthode pour ouvrir le fichier sélectionné.
Vous pouvez utiliser la méthode ShowDialog pour afficher la boîte de dialogue Ouvrir un fichier, puis utiliser une instance de la classe StreamReader pour ouvrir le fichier.
L'exemple ci-dessous utilise le gestionnaire d'événements Click du contrôle Button pour ouvrir une instance du composant OpenFileDialog. Lorsque l'utilisateur choisit un fichier et clique sur OK, le fichier sélectionné dans la boîte de dialogue s'ouvre. Dans ce cas, le contenu s'affiche dans un message, pour indiquer que le flux de fichier a été lu.
Note de sécurité : Pour obtenir ou définir la propriété FileName, votre assembly doit disposer d'un niveau de privilège accordé par la classe System.Security.Permissions.FileIOPermission. Si vous exécutez le programme dans un contexte partiellement fiable, le processus peut lever une exception en raison de privilèges insuffisants. Pour plus d'informations, consultez Notions fondamentales de la sécurité d'accès du code.
Cet exemple suppose que votre formulaire contient un contrôle Button et un composant 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# et Visual C++) Placez le code suivant dans le constructeur du formulaire pour inscrire le gestionnaire d'événements.
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);
Remarque : Pour plus d'informations sur la lecture à partir de flux de fichiers, consultez FileStream.BeginRead, méthode et FileStream.Read, méthode.
Pour ouvrir un fichier en tant que tel à l'aide du composant OpenFileDialog
Utilisez la méthode ShowDialog pour afficher la boîte de dialogue et la méthode OpenFile pour ouvrir le fichier.
La méthode OpenFile du composant OpenFileDialog retourne les octets qui composent le fichier. Ces octets vous fournissent un flux à partir duquel vous pouvez lire. Dans l'exemple ci-dessous, un composant OpenFileDialog est instancié avec un filtre « curseur », qui permet à l'utilisateur de choisir uniquement des fichiers portant l'extension .cur. S'il sélectionne un fichier .cur , le curseur du formulaire est réglé sur le curseur sélectionné.
Note de sécurité : Pour appeler la méthode OpenFile, votre assembly doit disposer d'un niveau de privilège accordé par la classe System.Security.Permissions.FileIOPermission. Si vous exécutez le programme dans un contexte partiellement fiable, le processus peut lever une exception en raison de privilèges insuffisants. Pour plus d'informations, consultez Notions fondamentales de la sécurité d'accès du code.
Cet exemple suppose que votre formulaire contient un contrôle 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# et Visual C++) Placez le code suivant dans le constructeur du formulaire pour inscrire le gestionnaire d'événements.
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);