IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[VB NET 2005] Suppression Fichier


Sujet :

Windows Forms

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 4
    Points : 2
    Points
    2
    Par défaut [VB NET 2005] Suppression Fichier
    Bonjour,

    Je n'arrive pas à supprimer un fichier temporaire.
    Explication : Je créé un fichier a l'aide de la commande net view,
    je lis le fichier, en extrait les données, puis je veux supprimer celui-ci.

    J'obtiens l'exception suivante :
    The process cannot access the file because it is being used by another process.

    J'utilise bien la méthode .close() sur mon streamreader.
    Pour supprimer le fichier, j'utilise My.Computer.FileSystem.DeleteFile

    Si vous auriez une solution, ca serait cool!

  2. #2
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 64
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    montre ton code svp :

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    voila mon code :

    -----------------------------------------------------------------------------------

    Dim FichierNomOrdinateurs As String

    FichierNomOrdinateurs = My.Application.Info.DirectoryPath + "\NomOrdinateurs.txt"
    'liste les pcs
    Shell("cmd.exe /c " + """" + "net view /DOMAIN:" + "monDomaine" + " > " + """" + FichierNomOrdinateurs + """" + """", vbHide)

    System.Threading.Thread.Sleep(2000)

    'Lecture FichierOrdinateurs
    Try
    Dim Fichier As New System.IO.StreamReader(FichierNomOrdinateurs, System.Text.Encoding.ASCII)
    Dim ligne As String

    Do
    ligne = Fichier.ReadLine()
    'MsgBox(ligne)
    End If
    Loop Until ligne Is Nothing
    Fichier.Close()

    System.Threading.Thread.Sleep(2000)

    'My.Computer.FileSystem.DeleteFile(FichierNomOrdinateurs)

    -------------------------------------------------------------------------

    Merci d'avance.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 62
    Points : 53
    Points
    53
    Par défaut
    utilise cette fonction que j'ai moi meme fait ^^, tu devrais arriver a faire ce que tu veux avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    Function GetMSDOS(ByVal command As String)
            '*******************************************
            '*** Creer le 10/09/2005 par B.Guillaume ***
            '*******************************************
            Dim ps As New ProcessStartInfo("cmd.exe")
            Dim result As String = ""
     
            'On redirige le flux entrant
            ps.RedirectStandardInput = True
            'Indispensable pour pour pouvoir rediriger le flux
            ps.UseShellExecute = False
            'On redirige le flux sortant
            ps.RedirectStandardOutput = True
            'On indique que aucune fentre ne sera creer
            ps.CreateNoWindow = True
            Dim process As Process = System.Diagnostics.Process.Start(ps)
            'On ecrit dans la fenetre
            process.StandardInput.WriteLine(command)
            'On ferme le flux d'ecriture
            process.StandardInput.Close()
            'On lit le flux
            result = process.StandardOutput.ReadToEnd
            'On ferme le flux
            process.StandardOutput.Close()
     
            'On retourne le resultat
            Return result
        End Function

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    S'il te plait, pourrais-tu expliquer plus en détail le code?
    Je comprend pas tellement le fonctionnement

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 62
    Points : 53
    Points
    53
    Par défaut
    Ok pas de probleme, tu debute en vb.net?

    C'est une fonction qui prend en parametre la commande ms-dos que tu souhaite, et qui retourne une chaine de caractere contenant le resultat de la commande ms-dos.Exemple d'utilisation:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    dim str as string
    str = GetMSDOS("net view")
    messagebox.show(str)
    Cette exemple affichera le resultat de la commande "net view" dans une messagebox.

    Dans ton cas tu peux lutiliser comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    dim str as string
    str = GetMSDOS("net view /DOMAIN:" & ledomaine)
    messagebox.show(str)
    Maintenant je t'explique le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    'Je fait un objet PocessStartInfo
    Dim ps As New ProcessStartInfo("cmd.exe")
    'String contenant le resultat 
    Dim result As String = ""
     
    'On redirige le flux entrant c'est a dire que on indique que l'on va ecrire dans la fenetre ms-dos
    ps.RedirectStandardInput = True
    'Indispensable pour pour pouvoir rediriger le flux
    ps.UseShellExecute = False
    'On redirige le flux sortant pour pouvoir recuperer ce qui est ecrit dans la fentre ms-dos
    ps.RedirectStandardOutput = True
    'On indique que aucune fentre ne sera creer
    ps.CreateNoWindow = True
    'On lance le processus
    Dim process As Process = System.Diagnostics.Process.Start(ps)
    'On ecrit dans la fenetre
    process.StandardInput.WriteLine(command)
    'On ferme le flux d'ecriture
    process.StandardInput.Close()
    'On lit le flux
    result = process.StandardOutput.ReadToEnd
    'On ferme le flux
    process.StandardOutput.Close()
    'On retourne le resultat
    Return result

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Débutant oui et non, mais je ne connaissais pas.
    J'ai utilisé ta fonction, ca marche.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VS.NET 2005] Deploiement fichiers langues
    Par Bz dans le forum Général Dotnet
    Réponses: 3
    Dernier message: 17/03/2007, 12h24
  2. [vb.net 2005] Problème de lecture d'un fichier (en ressources)
    Par micfont999 dans le forum Windows Forms
    Réponses: 7
    Dernier message: 10/01/2007, 21h29
  3. Réponses: 1
    Dernier message: 06/11/2006, 16h29
  4. [VB.net 2005] Fermer fichier mdb créer
    Par PoZZyX dans le forum Windows Forms
    Réponses: 3
    Dernier message: 19/09/2006, 08h20
  5. [VB.NET] [XML] Suppression d'un noeud dans un fichier XML
    Par Hoegaarden dans le forum Windows Forms
    Réponses: 2
    Dernier message: 24/09/2004, 11h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo