[VB.NET] OpenFileDialog, débutant .NET

Messages postés
498
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
13 juillet 2015
- - Dernière réponse : zippro4012
Messages postés
216
Date d'inscription
mardi 15 juin 2004
Statut
Membre
Dernière intervention
26 février 2006
- 15 avril 2005 à 20:18
Salut,



j'aimerais proposer l'ouverture de fichier par la méthode "OpenFileDialog".

Sur MSDN, c'est marqué qu'il faut faire une classe

<a href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemwindowsformsopenfiledialogclasstopic.asp"> MSDN : la classe OpenFileDIalog</a>



NotInheritable Public Class OpenFileDialog
Inherits FileDialog

avec un sub à mettre dedans. Le problème c'est que quand je copie le sub il marque qu'il connait pas plein de choses :
_ 'OpenFile' n'est pas un membre de 'monprojet.openfiledialog'
_ 'RestoreDirectory' n'est pas un membre de 'monprojet.openfiledialog'
_ La classe OpenFileDialog doit déclarer un Sub New, car sa classe de base FileDialog n'a pas de sub new accessible qu'il est possible d'appeler sans argument.
_ Type Stream non défini.

J'ai déjà essayé de régler le problème du Stream non défini. Sur MSDN, l'aide sur OpenFileDialog indique :
"The example assumes a form with a Button placed on it and the System.IO namespace added to it."

Comment je fais pour ajouter le nom d'espace system.IO qui va déclarer le type Stream ?
Afficher la suite 

6 réponses

Messages postés
2
Date d'inscription
mercredi 22 septembre 2004
Statut
Membre
Dernière intervention
15 avril 2005
0
Merci
la méthode open file dialog va simplement t'ouvrir une fenetre de
dialogue te permettant de selectionner un fichier qui seras mis dans
une variable.



La classe openfiledialog existe deja.



ci dessous un exemple de code:



' déclaration de la boite de dialogue

Dim openFileDialog1 As New OpenFileDialog

'Présentez à l'utilisateur une boîte de dialogue d'ouverture des fichiers

' avec limitation dans les extension de fichier

openFileDialog1.Filter = "Fichier texte (*.txt)|*.txt|Fichier Log (*.log)|*.log"

openFileDialog1.RestoreDirectory = True

If openFileDialog1.ShowDialog() = DialogResult.OK Then

'Ouvrez le fichier sélectionné dans le lecteur.

' on
ecrit le nom du fichier selectionné dans la variable "string" nomfic2

nomfic2 = openFileDialog1.FileName



Voila si tu trouve ton bonheur tant mieux
Messages postés
216
Date d'inscription
mardi 15 juin 2004
Statut
Membre
Dernière intervention
26 février 2006
1
0
Merci
C'est simple :
- Tu met un controle OpenFileDialog sur ta form
- Tu le paramètre :

OpenFileDialog1.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Personal)
OpenFileDialog1.Filter = "Fichiers texte (*.txt)|*.txt|Tous les fichiers|*.*"

- Tu affiche la boite en récuperant le boutton cliqué :

Bt = OpenFileDialog1.ShowDialog

- Tu traite les données :

If Bt = DialogResult.OK then
OpenFileDialog1.FileName 'tu traite le nom de fichier
End if
Messages postés
498
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
13 juillet 2015
6
0
Merci
Lut, merci pour vos rapides réponses...



>Zippro : j'ai 2 erreurs quant à ce que tu m'as conseillé

'GetFolderPath' n'est pas un membre de 'System.Environment'.

'SpecialFolder' n'est pas un membre de 'System.Environment'.



Mais bon, c pas grave, j'ai le répertoire d'une autre façon.



Sinon, pour traiter les données j'ai une autre erreur :



Un accès à la propriété doit assigner la propriété ou utiliser sa valeur. sur : OpenFileDialog1.FileName




en mode pas à pas, je vois la boite de dialogue s'ouvrir, mais vu que
j'ai mis la ligne du dessus en commentaire, bah l'appli disparait quand
j'arrive au end sub. (ps : c'est sur un emulateur pour pocket pc, mais
ca doit pas changer grand chose ?)
Messages postés
498
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
13 juillet 2015
6
0
Merci
Laissez tomber, on est vendredi, je suis fatigué du cerveau... :-D



>jermga, en assignant la ligne qui me posait pb à un string c bon,
cependant, je n'ai pas le temps de voir la boite de dialogue. Elle
s'ouvre, puis se referme aussitôt. :-?
Messages postés
498
Date d'inscription
mercredi 7 juillet 2004
Statut
Membre
Dernière intervention
13 juillet 2015
6
0
Merci
Alors en fait j'ai le code ci dessous



Private
Sub MenuItem5_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MenuItem5.Click

Dim bt As DialogResult

Dim nomfic2 As String

OpenFileDialog1.InitialDirectory = System.IO.Path.GetFullPath(TextBox1.Text)

OpenFileDialog1.Filter = "Fichiers texte (*.txt)|*.txt|Tous les fichiers|*.*"

'OpenFileDialog1.RestoreDirectory = True

'- Tu traite les données :

If OpenFileDialog1.ShowDialog() = DialogResult.OK Then

'Ouvrez le fichier sélectionné dans le lecteur.

' on
ecrit le nom du fichier selectionné dans la variable "string" nomfic2

nomfic2 = OpenFileDialog1.FileName

End If

End Sub



textBox1.text contient : \Program Files\04-14-05 (répertoire de l'application)
En fait, il ne rentre pas dans le if, donc ne fait pas nomfic2 = OpenFileDialog1.FileName



De plus si je rajoute
OpenFileDialog1.RestoreDirectory = True il marque l'erreur suivante :

'RestoreDirectory' n'est pas un membre de 'System.Windows.Forms.OpenFileDialog'.



Voici les méthodes dont je dispose pour un objet openfiledialog :

_ filename

_ filter

_ filterindex

_ get type

_ initialdirectory

_ showdialog

c'est tout.



De plus, j'ai un seul fichier txt dans ce répertoire, a savoir
essai.txt, mais il n'apparait meme pas. Est-ce que ca vient de
répertoire que je lui spécifie ?

Je remarque aussi qu'il marque dans "Folder" : All folder, il devrait pas plutot me mettre \Program Files\04-14-05 ?
Messages postés
216
Date d'inscription
mardi 15 juin 2004
Statut
Membre
Dernière intervention
26 février 2006
1
0
Merci
'GetFolderPath' n'est pas un membre de 'System.Environment'.
'SpecialFolder' n'est pas un membre de 'System.Environment'.


-> t'a pas le même framework que moi apparament, moi ca fonctionne impec