URGENT !! Créer un fichier à l'interieur d'un dossier prédéfini

Résolu
Dagry Messages postés 29 Date d'inscription samedi 17 mars 2007 Statut Membre Dernière intervention 1 septembre 2008 - 24 mai 2008 à 19:18
Dagry Messages postés 29 Date d'inscription samedi 17 mars 2007 Statut Membre Dernière intervention 1 septembre 2008 - 29 mai 2008 à 15:37
Bonjour, j'ai un léger problème (que je n'arrive pas à résoudre). J'aimerais pouvoir créer un fichier directement dans un dossier que j'ai spécifié.
C'est à dire que je crée le dossier userpath avec System.Io.Directory.Create dans le répertoire de l'application. Maintenant j'aimerais créer un fichier par exemple username dans ce dossier.
Comment m'y prendre ?

13 réponses

Dagry Messages postés 29 Date d'inscription samedi 17 mars 2007 Statut Membre Dernière intervention 1 septembre 2008
29 mai 2008 à 15:37
J'ai trouvé la solution et elle marche!!!



par exemple, on recueille un nom avec



dim



Prompt, NomPrompt =


"Entrez le nom d'utilisateur"

Nom = InputBox$(Prompt)

ensuite on crée un dossier portant le nom qu'on a recueilli


Dim



userpath = System.IO.Directory.CreateDirectory(Nom).ToString



on crée un fichier portant le nom qu'on a recueilli avec une extension




Dim



namext

As



String
= Nom &

".usn"



ensuite on définit le répertoire créé précédement comme répertoire par défaut puis on y crée le fichier




System.IO.Directory.SetCurrentDirectory(userpath)


System.IO.File.Create(namext)








pour la forme on fait un beep et on envoie un message






Beep()


MsgBox(




"Votre Compte d'utilisateur a été créé avec succès."
)



on peut utiliser ce bout de code comme une fonction aussi, ça marche quand même
3
Utilisateur anonyme
24 mai 2008 à 19:36
Salut,

Y'a pas à chercher bien loin :
System.Io.File.Create

__________
  Kenji
0
Dagry Messages postés 29 Date d'inscription samedi 17 mars 2007 Statut Membre Dernière intervention 1 septembre 2008
24 mai 2008 à 19:59
justement c'est ce que j'ai fait mais il met le fichier ailleurs
0
Kevin.Ory Messages postés 840 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 7 janvier 2009 11
24 mai 2008 à 20:11
Salut,

Si il ne met pas ton fichier ou tu veux, c'est parce que ton chemin est faux, c'est tout

        Dim path As String = IO.Path.Combine(Application.StartupPath, "Username.txt")
        Dim stream As IO.FileStream = IO.File.Create(path)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
24 mai 2008 à 20:12
Tu as mis quoi en paramètre ?

__________
  Kenji
0
Dagry Messages postés 29 Date d'inscription samedi 17 mars 2007 Statut Membre Dernière intervention 1 septembre 2008
24 mai 2008 à 23:07
merci kevin.ory ça marche. ça m'aide beaucoup.
0
Dagry Messages postés 29 Date d'inscription samedi 17 mars 2007 Statut Membre Dernière intervention 1 septembre 2008
24 mai 2008 à 23:08
mais le fichier n'est pas à l'interieur du dossier créé
0
Utilisateur anonyme
25 mai 2008 à 00:57
Bien sur il faut apporter quelques modifications :
        Dim path As String = IO.Path.Combine(userpath, "Username.txt")
        Dim stream As IO.FileStream = IO.File.Create(path)

__________
  Kenji
0
Dagry Messages postés 29 Date d'inscription samedi 17 mars 2007 Statut Membre Dernière intervention 1 septembre 2008
25 mai 2008 à 22:36
excusez moi
quand j'utilise l'instruction combine il me dit Le processus ne peut pas accéder au fichier car il est en cours d'utilisation par un autre processus. que faire ?
0
Dagry Messages postés 29 Date d'inscription samedi 17 mars 2007 Statut Membre Dernière intervention 1 septembre 2008
25 mai 2008 à 22:36
excusez moi
quand j'utilise l'instruction combine il me dit Le processus ne peut pas accéder au fichier car il est en cours d'utilisation par un autre processus. que faire ?
0
Kevin.Ory Messages postés 840 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 7 janvier 2009 11
26 mai 2008 à 03:40
Ce n'est pas Path.Combine qui te génère cette erreur, mais File.Create.

C'est parce que ton fichier est déjà ouvert, soit dans ton code, soit par un autre processus.
0
Dagry Messages postés 29 Date d'inscription samedi 17 mars 2007 Statut Membre Dernière intervention 1 septembre 2008
27 mai 2008 à 17:25
je vais continuer à chercher
merci quand même
0
Kevin.Ory Messages postés 840 Date d'inscription mercredi 22 octobre 2003 Statut Membre Dernière intervention 7 janvier 2009 11
27 mai 2008 à 20:31
Lol,

Ce qu'il faut savoir sur l'ouverture des fichiers:
- Un fichier ne peut être ouvert qu'une seule fois. Si on tente de le réouvrire alors qu'il est déjà ouvert, ça provoquera l'erreur que tu as (Le processus ne peut pas accéder au fichier car il est en cours d'utilisation par un autre processus)
- Il faut donc refermer le fichier une fois qu'on a fini d'y écrire des données. On peut le faire manuellement en appelant stream.close, ou ceci est fait automatiquement lorsque stream n'est plus utilisé (lorsque il n'y a plus de référence à l'objet stream). Donc pour être sur que ton fichier est fermé, on va mettre stream.close:

    ' Chemin du dossier:
    Dim dossier As String = IO.Path.Combine(Application.StartupPath, "UserPath")
    ' Si le dossier n'existe pas, le créer:
    If Not IO.Directory.Exists(dossier) Then IO.Directory.CreateDirectory(dossier)
    ' Création du fichier:
    Dim stream As IO.FileStream = IO.File.Create(IO.Path.Combine(dossier, "Username.txt"))
    ' Ecrire les données dans le fichier
    ...
    ' Une fois fini, il faut fermer le fichier
    stream.Close()

Mets ces 4 lignes dans un nouveau projet, tu verra que ça fonctionne très bien
0
Rejoignez-nous