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

VB.NET Discussion :

récupérer un sous-répertoire


Sujet :

VB.NET

  1. #1
    Candidat au Club
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Octobre 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 14
    Points : 4
    Points
    4
    Par défaut récupérer un sous-répertoire
    Bonjour, j'aimerais en vb.net pourvoir récupérer un sous-répertoire. Tout ce que je trouve sur le net, c'est lister des fichiers et répertoires. Moi je veux pas lister les fichier mais juste sélectionner le sous-répertoire dans le quelle je vais pouvoir aller porter un fichier. Je dois préciser que je commence en vb.net.

    Ce que je dois faire dans mon programme c'est: aller cherche des fichiers sur un réseau, les copier dans un répertoire temporaire, changer leurs noms et les déplacer dans un autre répertoire sur un autre disque du réseau. J'arrive à tout faire cela mais je ne sais pas comment faire pour aller chercher le répertoire dont j'ai besoin pour déplacer mon fichier une fois que son nom est changé.

    Je vous mets le code à partir du moment ou je renomme le fichier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    My.Computer.FileSystem.RenameFile("z:\test\transfert pdf\_pdf", z:\test\transfert pdf\fichier1.pdf")
                    Repert2 = Path.GetFullPath("z:\test\")
                    For Each Rep In Directory.GetDirectories("z:\test", Rep, SearchOption.AllDirectories)
    j'ai nommé une variable repert2 pour obtenir le path de départ et j'utilise un variable Rep pour nommer les sous-répertoires, mais là, j'improvise car je ne sais pas comment faire.

    merci de votre aide

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    tout est dans system.io

    system.io.file.move doit exister
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Candidat au Club
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Octobre 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 14
    Points : 4
    Points
    4
    Par défaut
    ok, je recommence parce que je crois avoir mal formuler ma question. Je ne cherche pas la commande pour déplacer un fichier, je la sais déjà. Je veux savoir comment je fais pour trouver les sous-répertoires qui sont dans un répertoire principal, sachant que je ne connais pas le nom des sous-répertoires. Ex: j'ai un répertoire qui s'appelle "z:\text\atest", un autre qui s'appelle "z:\test\btest" et ainsi de suite jusqu'à "zzz" mettons. Le fichier que je dois aller porter, aura comme nom "aprojet.xxx" s'il doit aller dans le répertoire "atest" et "csprojet.xxx" si c'est dans "cstest", etc.

    donc, en bref, je dois trouver un répertoire qui a comme nom au début soit un, deux ou trois lettres qui sont identique au premières lettres du fichier pour pouvoir ensuite déplacer mon fichier dans ce répertoire.

    j'espère que c'est plus clair.

    merci

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    le mieux avant d'utiliser un outil est de regarder comment il fonctionne
    et pour ca vs est plutot bien fait, vu que tu peux tout parcourir pour avoir une idée de ce que ca fait et de ce qu'il y a derrière

    en tapant system.io. tu peux lire tout ce qui t'es proposé


    sinon ce que tu cherches c'est
    system.io.directory.getfiles
    system.io.directory.getdirectories
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Candidat au Club
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Octobre 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 14
    Points : 4
    Points
    4
    Par défaut
    merci, j'ai déjà import system.io et j'ai essayé avec directory.getdirectories mais il me sous-ligne le texte et me dit : Impossible de convertir une valeur de type tableau à 1 dimension de string en string.

    la manière de m'y prendre est probablement incorrect mais je ne trouve pas comment. Bon je vous donne mon code au complet, peut-être ce sera plus facile de voir ce qui cloche.

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    Public Class PDF_COPIE
     
        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
     
            Call LireRep("z:\test")
     
        End Sub
        Private Sub LireRep(ByVal Rep As String)
     
            Dim repertoire As New DirectoryInfo("z:\test")
            Dim NewRep As DirectoryInfo = Repertoire.CreateSubdirectory("Transfert")
            Dim Extention As String = ("test")
            Dim SousRep As String() = Directory.GetDirectories(Rep)
            Dim DirRep As String
            Dim DirRep2 As String
            Dim DirRep3 As String
            Dim NomRep As String
            Dim DebNom As String
            Dim Lng As Integer
            Dim NomFichier As String
            Dim Repert2 As String
            Dim RepReseau As String
     
            Extention = Path.GetFileNameWithoutExtension("test")
            NomFichier = Microsoft.VisualBasic.Right(Extention, 4)
     
            If File.Exists("z:\test\transfert\test.abc") Then
                My.Computer.FileSystem.DeleteFile("z:\test\transfert\test.abc")
            End If
     
            For Each Extention In Directory.GetFiles("q:\projects", Extention, SearchOption.AllDirectories)
                NomRep = Path.GetDirectoryName(Extention)
                DirRep = NomRep.Substring(12)
                DirRep2 = Microsoft.VisualBasic.Mid(DirRep, Microsoft.VisualBasic.InStr(DirRep, "\") + 1)
                DirRep3 = Microsoft.VisualBasic.Left(DirRep2, Microsoft.VisualBasic.InStr(DirRep2, "\") - 1)
     
                File.Copy("c:\users\ordis\documents\test\test.abc", "z:\test\transfert PDF\test.abc")
                System.Threading.Thread.Sleep(1000)
                Try
                    'détermine si le fichier est supprimé ou pas avec un "-"
                    DebNom = Microsoft.VisualBasic.Left(DirRep3, Microsoft.VisualBasic.InStr(DirRep3, "-") + 3)
                Catch ex As Exception
                    MessageBox.Show(ex.ToString)
                    If Lng > 3 And DirRep3 = "-" Then
                        File.Delete("z:\test\Transfert\" & NomFichier)
                    End If
                Finally
                    DebNom = Nothing
                End Try
     
                DebNom = Microsoft.VisualBasic.Left(DirRep3, 2)
                If DebNom = "HS" Or DebNom = "qd" Then
                    File.Delete("z:\test\Transfert\" & NomFichier)
                    GoTo 1
                End If
     
                DebNom = Microsoft.VisualBasic.Left(DirRep3, 3)
                If DebNom = "RPA" Or DebNom = "DRW" Or DebNom = "RPR" Or DebNom = "RCH" Then
                    File.Delete("z:\test\Transfert\" & NomFichier)
                    GoTo 1
                End If
     
                DebNom = Microsoft.VisualBasic.Left(DirRep3, 4)
                If DebNom = "RSAT" Or DebNom = "RTAB" Or DebNom = "RCAN" Or DebNom = "RFOU" Or DebNom = "HYCK" Or DebNom = "MEMY" Or DebNom = "MEPA" Then
                    File.Delete("z:\test\Transfert\" & NomFichier)
                    GoTo 1
                End If
     
                DebNom = Microsoft.VisualBasic.Left(DirRep3, 5)
                If DebNom = "RCONV" Or DebNom = "RDOMP" Or DebNom = "RTEU" Or DebNom = "RTRAN" Or DebNom = "RRAIL" Or DebNom = "RDRIV" Or DebNom = "RCOIN" Or DebNom = "RPLFO" Or DebNom = "RTEVI" Or DebNom = "RECAR" Or DebNom = "RPLAT" Or DebNom = "RTUYA" Or DebNom = "RRIOP" Then
                    File.Delete("z:\test\Transfert\" & NomFichier)
                    GoTo 1
                End If
     
                If DebNom <> "HS" And DebNom <> "QD" And DebNom <> "RPA" And DebNom <> "RTAB" And DebNom <> "RCAN" And DebNom <> "RFOU" And DebNom <> "HYCK" And DebNom <> "MEMY" And DebNom <> "MEPA" And DebNom <> "RSAT" And DebNom <> "RCONV" And DebNom <> "RDOMP" And DebNom <> "RTEU" And DebNom <> "RTRAIN" And DebNom <> "RDRIV" And DebNom <> "RCOIN" And DebNom <> "RPLFO" And DebNom <> "RTEVI" And DebNom <> "RECAR" And DebNom <> "RTUYA" Then
     
                    My.Computer.FileSystem.RenameFile("z:\test\transfert\test.abc", DirRep3 & ".abc")
                   Repert2 = Directory.GetDirectories("z:\test\transfert", SearchOption.AllDirectories)
     
     
                End If
    merci

  6. #6
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Repert2 = Directory.GetDirectories("z:\test\transfert", SearchOption.AllDirectories)
    alors que là tu avais réussi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim SousRep As String() = Directory.GetDirectories(Rep)

    string() veut dire tableau de string
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  7. #7
    Candidat au Club
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Octobre 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 14
    Points : 4
    Points
    4
    Par défaut
    Bon je crois que ça va être pas mal plus difficile que je croyais. J'ai affecté la variable "sousrep" à ma ligne et je n'ai plus d'erreur mais le résultat est : "0" donc je comprend que ça ne fonctionne pas. Je regarde cela et reviens avec une question si je trouve pas de solution.

    merci pour votre aide et la vitesse à laquelle vous avez répondu.

  8. #8
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    au passage ton code n'est pas joli, et trop long pour ce que tu veux faire
    top de variables inutiles, trop de découpage inutiles
    les goto sont à éviter (proscrire ?)

    un exemple de ce qui peut etre fait :

    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
    dim listeDebut as new list(of string)
    listeDebut.add("HS")
    listeDebut.add("qd")
    listeDebut.add("RPA")
    listeDebut.add("DRW")
    ' ...
     
     
    for each file in directory.getfiles(...)
      for each d in listeDebut
          if system.io.path.filename(file).Startswith(d) then 
             file.delete(file)
             continue for
          end if
      next
     ' ...
    next
    et encore cette sous boucle for peut s'écrire en une ligne de code si on maitrise linq


    ! : les comparaisons sur les string gèrent la casse (minusule/majuscule) si tu souhaites en faire abstraction il y a .tolower sur la classe string
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  9. #9
    Candidat au Club
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Octobre 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 14
    Points : 4
    Points
    4
    Par défaut
    ok merci pour le bout de code mais comme j'ai déjà beaucoup de difficulté à faire mon code du à mon incompréhension du vb.net, je vais laissé ce qui fonctionne pour me concentré sur ce qui ne fonctionne pas après, je changerai cela.

    merci beaucoup pour ton aide, c'est très apprécié.

  10. #10
    Candidat au Club
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Octobre 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 14
    Points : 4
    Points
    4
    Par défaut
    bonjour POL63, j'ai avancé beaucoup mais là je suis bloqué. Quelque chose de probablement très simple pour vous. Avec ma variable "Sousrep", j'ai une liste qui s'affiche de tout les sous-répertoires. Comment je fais pour sélectionner celui que je veux si mon information est incomplète. Je m'explique. Dans le bon vieux dos, si je veux trouver un répertoire ex: documents, je peux juste écrire: doc* et il me trouve documents. Comment on fait en vb.net pour recréer cette commande?

    J'ai essayé plusieurs variable mais je n'y arrive pas. Voici un exemple de code que j'ai essayé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SousRep = Directory.GetDirectories("z:\test\" & DirRep4 & "*")
    dans l'erreur que j'obtient, il ne tient pas compte du *, il dit que le caractère est non conforme...

    Plus j'avance. plus je me rends compte que ça ne peux pas fonctionner. Ma question est: comment je fait pour récupérer un répertoire qui s'appelle par exemple : charcuterie lorsque je n'ai dans ma variable que char? delà la nécessité de mettre "char*" mais est-ce que je peut dire à un tableau que si un des répertoires = mon mot recherché alors choisie ce répertoire?

    merci de votre aide.

  11. #11
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Bonsoir,

    - Dans un 1er temps on ne fait pas de comparaison entre un langage procédural et un langage OO (orienté Objet). C'est une très mauvais pratique !

    - Ensuite ce qui se trouve entre parenthèse de la méthode "GetDirectories" (de la classe "Directory" de l'espace de noms "System.IO") se nomme une signature dans laquelle il peut y avoir plusieurs types d'arguments selon les surcharges disponibles depuis l'auto-Complétion.
    Tu vas donc te rendre compte que tu peux filtrer dans un 1er tps un certains type de répertoire !

    - SousRep doit être typé pour éviter d'être confronté plus tard à des soucis liées au typage "Object" !

    - La méthode GetDirectories renvoi un tableau de string donc il faut le parcourir dans une boucle for each (ou utiliser une requête Link) afin de travailer avec kes éléments qu'il contient. Ensuite dans cette même boucle on imbrique une conditionnelle pour savoir si le nom complet (chemin) contient tel ou tel pattern.
    Pour cela le message de Pol63 de 16H03 est très bien détaillé !


    A+

  12. #12
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    pas tout suivi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dim listesousdossiersavecchar = (from d in directory.getdirectories(...) where d like "char*" select d)
    pour info quand il y a un from dans une ligne de code ca s'appelle du linq (language integrated query je crois)
    c'est un sous langage de .net qui est un langage "fonctionnel"
    ca équivaut à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    dim listesousdossiersavecchar as new list(of string)
    for each d in directory.getdirectories(...) 
      if d like "char*"
          listesousdossiersavecchar.add(d)
      end if
    next
    linq permet donc de réduire le nombre de ligne de code d'une boucle (entre autre)

    le list(of string) étant un équivalent d'un tableau de string en mieux
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  13. #13
    Candidat au Club
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Octobre 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 14
    Points : 4
    Points
    4
    Par défaut
    Merci pour vos commentaires et les codes, il me sont très utiles mais je n'y arrive quand même pas. Je suis sur cela depuis hier après-midi et je ne vois pas comment je peux arriver à mon résultat avec un tableau. Je vais essayé d'expliquer du mieux que je peux ce que je dois faire.

    Donc, j'ai dans un répertoire "x" un fichier que j'ai copier d'un répertoire "y". Le fichier s'appelle toujours "_test" (sans extension).Le répertoire "y" s'appelle ex: "abc-145-56_deqrt". Si le nom du répertoire commence par "erg" ("erg-859-12_deqrt"), je dois supprimer le fichier "_test". Cependant, si le nom du répertoire commence par "abc" ("abc-123-56_deqrt"), je dois renommer le fichier "_test" en "abc-123-56.pdf"

    Là je bloque car je dois aller chercher soit les 2 première lettre, les 3 première lettre, les 4 ou les 5 première lettre du répertoire. Si mon répertoire s'appelle "df-123-84_deqrt" et que je vais cherche les 5 première lettre, j'aurai "df-12" et ça ne fonctionne pas car le 12 peut très bien être 59. Donc il ne trouvera pas de correspondance et n'effacera pas le fichier "_test". Le répertoire peut aussi s'appelle "rg0000_345_deqrt"...

    J'ai bien regarder comment fonctionne le tableau. C'est assez simple. Si je ne prend que les 3 première lettre par exemple, ça fonctionne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
      DirRep3 = Microsoft.VisualBasic.Left(DirRep3, +3)
    dim a as string = dirrep3
                For Each a In (listedebut)
                    For Each d In listeDebut
     
                        If a.StartsWith(d) Then
                            File.Delete(replocal & NomFichier)
                            Continue For
                        End If
                    Next
                    ' ...
                Next
    J'espère que c'est assez clair comme explication. Si vous avez des questions n'hésitez pas.

    J'ai écris: for each a in (listedebug) (mais je crois pas que ce soit bon) parce que je n'ai selon moi pas besoin d'aller chercher aucun répertoire ni fichier. Il faut juste que je compare mes lettres qui sont dans mon fichier avec la liste. Le résultat est toujours que ça boucle à l'infinie...

    Merci de votre aide.

  14. #14
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    il ne faut pas comparer x lettres avec un pattern, mais regarder si le fichier commence comme prévu, comme je l'ai fais dans le code précédemment posté (like/startswith)


    "abc-123".startswith("abc") retourne true
    "ab-123".startswith("abc") retourne false
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  15. #15
    Candidat au Club
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Octobre 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 14
    Points : 4
    Points
    4
    Par défaut
    bonjour, oui ça je l'ai compris et j'avais déjà changer ma lettre pour ma variable. C'est assez compliqué pour quelqu'un qui débute... Je n'arrive pas à sortir de la boucle. Il la recommence indéfiniment. je ne comprends pas pourquoi. Enfin, merci pour l'aide, je vais continué à chercher.

  16. #16
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par infodes Voir le message
    ........ C'est assez compliqué pour quelqu'un qui débute...
    On a tous débuté quelquepart fort heureusement si ça peut te rassurer.

    Citation Envoyé par infodes Voir le message
    Enfin, merci pour l'aide, je vais continué à chercher.
    Si tu utilisais la classe DirectoryInfo ou FileInfo tu n'aurais pas d’ambiguïté lors de la recherche exacte d'un nom de répertoire (parent, racine,...etc...... ) d'un quelconque fichier (éventuellement).
    Il ne faut pas chercher, il faut utiliser les classes que le Framework mets à ta disposition pour résoudre tes problèmes et éventuellement consulter la bible MSDN !


    ---- PS----- :




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

  17. #17
    Candidat au Club
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Octobre 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 14
    Points : 4
    Points
    4
    Par défaut
    bonjour, je n'utilise pas déjà la classe directoryinfo et fileinfo lorsque j'ai import system.io? Je croyais que ça englobait tout cela déjà.

    J'ai avancé dans mon code (qui ferait sûrement grincer des dents plusieurs personne ici) mais qui fonctionne selon ce que je veux. Avec l'utilisation des tableaux, je suis arrivé à obtenir les noms des sous-répertoires que j'ai besoin.

    merci pour votre aide, elle m'a été précieuse. Wallacec1, je ne comprends pas tout ce que tu m'a écris mais je vais fouiller pour trouver les réponses.

  18. #18
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Citation Envoyé par wallace1 Voir le message
    On a tous débuté quelquepart fort heureusement si ça peut te rassurer.



    Si tu utilisais la classe DirectoryInfo ou FileInfo tu n'aurais pas d’ambiguïté lors de la recherche exacte d'un nom de répertoire (parent, racine,...etc...... ) d'un quelconque fichier (éventuellement).
    Il ne faut pas chercher, il faut utiliser les classes que le Framework mets à ta disposition pour résoudre tes problèmes et éventuellement consulter la bible MSDN !
    Je me permets de squatter (une fois n'est pas coutume), ce fil pour me permettre une petite question. J'ai toujours eu l'impression que Directory et DirectoryInfo et File et FileInfo étaient équivalentes deux à deux, hormis que les "pas Info" étaient statiques. Là, tu sembles dire que les "Info" sont préférables. Cela m'intrigue.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  19. #19
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par clementmarcotte Voir le message
    Bonjour,



    Je me permets de squatter (une fois n'est pas coutume), ce fil pour me permettre une petite question. J'ai toujours eu l'impression que Directory et DirectoryInfo et File et FileInfo étaient équivalentes deux à deux, hormis que les "pas Info" étaient statiques. Là, tu sembles dire que les "Info" sont préférables. Cela m'intrigue.
    Non en fait ca n'a absolument rien à voir. Je disais qu'il était préférable d'utiliser les classes du framework afin de récupérer des noms de dossiers parent et racines...etc... au lieu de faire ce genre de choses ... :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
                NomRep = Path.GetDirectoryName(Extention)
                DirRep = NomRep.Substring(12)
                DirRep2 = Microsoft.VisualBasic.Mid(DirRep, Microsoft.VisualBasic.InStr(DirRep, "\") + 1)
                DirRep3 = Microsoft.VisualBasic.Left(DirRep2, Microsoft.VisualBasic.InStr(DirRep2, "\") - 1)
    Avec le code ci dessus ça augmente les chances d'être confronté à des erreurs .....

    Voilà tout.

  20. #20
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    <
    Citation Envoyé par wallace1 Voir le message
    Non en fait ca n'a absolument rien à voir. Je disais qu'il était préférable d'utiliser les classes du framework afin de récupérer des noms de dossiers parent et racines...etc... au lieu de faire ce genre de choses ... :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
                NomRep = Path.GetDirectoryName(Extention)
                DirRep = NomRep.Substring(12)
                DirRep2 = Microsoft.VisualBasic.Mid(DirRep, Microsoft.VisualBasic.InStr(DirRep, "\") + 1)
                DirRep3 = Microsoft.VisualBasic.Left(DirRep2, Microsoft.VisualBasic.InStr(DirRep2, "\") - 1)
    Avec le code ci dessus ça augmente les chances d'être confronté à des erreurs .....

    Voilà tout.
    O.K. Merci. Bien d'accord avec toi.
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Récupérer un sous répertoire
    Par Cristalinz dans le forum VBScript
    Réponses: 1
    Dernier message: 06/06/2014, 11h13
  2. Récupérer des fichiers dans des repertoires et sous répertoires
    Par philcphilc dans le forum Développement de jobs
    Réponses: 4
    Dernier message: 05/09/2013, 19h37
  3. [XL-2003] Récupérer répertoire et sous répertoire sans les fichiers
    Par dlight dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/05/2013, 19h13
  4. Réponses: 7
    Dernier message: 10/12/2007, 11h27
  5. Comment récupérer les sous répertoires d'un répertoire
    Par charliejo dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/02/2006, 08h47

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