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 :

Trier des fichiers par taille descendante avec GetFiles sur ressource réseau mappée


Sujet :

VB.NET

  1. #1
    Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 11
    Points : 4
    Points
    4
    Par défaut Trier des fichiers par taille descendante avec GetFiles sur ressource réseau mappée
    Bonsoir,

    Je me heurte depuis plusieurs heures à un problème de tri de fichiers en VB.NET.
    J'essaie de trier des fichiers de backup qui se trouvent sur un NAS. Le répertoire de ces fichiers est mappé sur mon PC comme disque Y
    J'essaie d'accéder à la liste des fichiers de la façon suivante :

    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
     
    .....
    Dim files() as String
    MyDir = "Y:\Backups\Sauvegarde Arthur"
     
    Try
        files = IO.Directory.GetFiles(MyDir, "*.bkp")
             ' Tri du plus grand au plus petit                
             files = files.OrderByDescending(
                      New Func(Of String, Integer)(Function(fn As String)
                                     Return New IO.FileInfo(fn).Length
                                     End Function)).ToArray
    ......
    Catch ex as Exception
       ...
    End Try
    Si la solution marche sur disque local, j'ai constamment le message d'erreur "Impossible de trouver une partie du chemin d'accès..." et pourtant le chemin MyDir existe bien sur le NAS...

    Quelqu'un pourrait-il m'aiguiller sur ce que je ne fais à priori pas bien ?

    Merci d'avance

    Philippe

  2. #2
    Membre émérite Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Points : 2 865
    Points
    2 865
    Par défaut
    Bonjour,
    Peut-être que si tu utilises un chemin et nom de dossier sans caractères blancs, accentués, ..., cela ira mieux.
    Soit le chemin suivant : Y:\Backup\Sauvegarde_Arthur
    (sans espace).
    Bonne journée...

  3. #3
    Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 11
    Points : 4
    Points
    4
    Par défaut
    Bonjour,

    Merci de la réponse.
    C'est effectivement quelque chose auquel j'ai pensé et que je vais tester, mais cela devrait logiquement être faisable aussi avec des noms longs et c'est là que je manque d'infos...

  4. #4
    Membre émérite Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Points : 2 865
    Points
    2 865
    Par défaut
    Oui, ça devrait ..., mais peut-être avec une syntaxe particulière.
    Les commandes lancées en ligne de commande (DEL par exemple) nécessitent de mettre des guillemets (je crois) pour que ça marche avec les longs noms, par exemple : DEL "Un long nom de fichier.TXT".

    J'espère que c'est la piste à suivre ...

  5. #5
    Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 11
    Points : 4
    Points
    4
    Par défaut
    Plus intéressant encore :
    Si j'utilise ce code sur mes deux machines via réseau local, çà fonctionne.
    Si je fais le même test sur une machine et le NAS, çà ne passe pas....Quelque chose à voir avec Samba ?
    Plus d'idée, là

  6. #6
    Membre émérite Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Points : 2 865
    Points
    2 865
    Par défaut
    Je viens de tester les commandes DOS avec les longs noms de fichiers (Dir > Fichier.txt et Dir > "Long Nom.TXT", Type "Long Nom.TXT") : il faut effectivement les guillemets.
    Pour ce qui est des NAS, ils sont généralement munis d'un OS archaïque. Cela expliquerait que ça fonctionne entre disques partagés sur des systèmes Win 8 ou Win 10 et que ça ne fonctionne pas avec un disque partagé sur un NAS. Note que le problème est moins le nom long que la présence d'un blanc, le blanc est un séparateur de mots dans les commandes systèmes.
    Note que s'il s'agit bien de la syntaxe, celle qui fonctionnera avec le NAS fonctionnera aussi sur les Windows.
    As-tu fait l'essai en changeant Sauvegardes Arthur en SauvegardesArthur ou Sauvegardes_Arthur, ou même en ArthurBK (seulement 8 caractères) ?

    ...

  7. #7
    Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 11
    Points : 4
    Points
    4
    Par défaut
    Oui, j'ai essayé et aucun résultat.
    Je me demande s'il ne faut pas utiliser de login/pw pour se connecter...
    J'aurais aussi dû préciser que j'essaie de lancer ce prog via le planificateur de tâche, donc est-ce que çà ne peut pas jouer ?
    Recherches, recherches

  8. #8
    Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 11
    Points : 4
    Points
    4
    Par défaut
    Je n'ai toutefois pas essayé avec des path en 8 lettres...Je vais tenter..

  9. #9
    Membre émérite Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Points : 2 865
    Points
    2 865
    Par défaut
    Login/Passwd... cela ne devrait plus être nécessaire une fois que la ressource est présente sous forme Y:

    Bonnes recherches...

  10. #10
    Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 11
    Points : 4
    Points
    4
    Par défaut
    Pour info, testé Y:\Backups\Test : pas mieux...
    Désespérant...
    Merci quand même. Quelqu'un d'autre aurait-il une idée lumineuse ?

  11. #11
    Membre émérite Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Points : 2 865
    Points
    2 865
    Par défaut
    Question probablement stupide ... mais quand même ...

    Est-ce que tu peux, avec l'explorateur de Windows, copier un fichier TXT quelconque de ton disque dur local vers l'unité Y:, dans le dossier que tu veux utiliser pour le backup ?

    Mon raisonnement est le suivant, si tu peux écrire dans ce dossier à partir de ton système local, alors il y a effectivement un problème dans ton application de backup.
    Mais si tu ne peux pas écrire dans ce dossier à partir de ton système local, alors c'est plutôt une question de droit d'écriture dans ce dossier du NAS.

    Une dernière pour la route (une piste), il convient de t'assurer que le NAS reçoit toujours la même IP. Dans le cas contraire, il est possible qu'il ne soit pas reconnu d'une fois à l'autre (c'est un cas de figure que j'ai rencontrer autrefois avec des imprimantes réseau).

    Bonne journée,


  12. #12
    Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 11
    Points : 4
    Points
    4
    Par défaut
    La nuit portant conseil, il semble que le problème soit résolu en remplaçant Directory.GetFiles par un bon vieux Dir("Y:\......") e en bouclant avec un aussi bon vieux do while...
    Pour ceux que cela pourrait aider aussi...

  13. #13
    Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 11
    Points : 4
    Points
    4
    Par défaut
    Alors, en fait, malheureusement ce n'est pas non plus la solution.
    De plus, il s'avère que ce problème n'existe que sur un seul des 5 pc du réseau local de notre association...Il est sous Win 10-2004
    - Pas de différence hardware avec les autres
    - Même version de dotnet (4.8)
    - J'ai désactivé temporairement antiivirus/firewall histoire de...
    - J'ai fait tourner sfc /scannow : pas de problème
    - copié/collé les mappages réseau incriminés dans l'explorateur : aucun souci

    Plus d'idées du tout sur ce que ce pc pourrait avoir qui cause ce problème.

    Voilà pour le cas où quelqu'un pourrait avoir une idée.

    Merci

    Philippe

  14. #14
    Membre émérite Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Points : 2 865
    Points
    2 865
    Par défaut
    Bonjour
    Refaire les tests d'écriture à partir de l'explorer du PC difficile.
    Si cela fonctionne, il n'existe aucune raison pour que ton programme ne puisse pas faire la même chose sauf peut-être le droit à l'utilisateur local d'écrire sur Y:.
    Pour cette dernière éventualité, tu peux faire le test en lançant l'EXE de ton programme avec " Exécuter en tant qu' administrateur ".
    ...

  15. #15
    Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 11
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par Phil Rob Voir le message
    Bonjour
    Refaire les tests d'écriture à partir de l'explorer du PC difficile.
    Si cela fonctionne, il n'existe aucune raison pour que ton programme ne puisse pas faire la même chose sauf peut-être le droit à l'utilisateur local d'écrire sur Y:.
    Pour cette dernière éventualité, tu peux faire le test en lançant l'EXE de ton programme avec " Exécuter en tant qu' administrateur ".
    ...
    Bonjour,
    Les tests d'écriture sont sans problème
    Lancé l'EXE avec élévation Admin: aucun changement...
    Le même exe copié pour les tests sur les 5 machines fonctionne parfaitement sur les 4 autres, donc à priori aucune grosse erreur majeure dans le prog ou alors je vais perdre les cheveux qui me restent

    Merci pour les tentatives

  16. #16
    Membre émérite Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Points : 2 865
    Points
    2 865
    Par défaut
    Perso, je réviserais les droits réglés sur le NAS.
    Quoique si tu peux écrire avec l'explorer...
    Bonne soirée (quand même ))) )

  17. #17
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Note: Si tu veux récupérer directement les tailles des fichiers, je te conseille d'utiliser directement DirectoryInfo.GetFiles() au lieu de Directory.GetFiles().
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  18. #18
    Candidat au Club
    Inscrit en
    Mai 2007
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 11
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Note: Si tu veux récupérer directement les tailles des fichiers, je te conseille d'utiliser directement DirectoryInfo.GetFiles() au lieu de Directory.GetFiles().
    Bonjour,
    Merci de l'info mais en fait je trie les fichiers par taille et date descendante via LINQ et çà fonctionne parfaitement sur mes autres machines donc mystère...
    Philippe

Discussions similaires

  1. [Batch] Copier des fichiers par taille
    Par JD6259 dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 04/06/2013, 21h58
  2. Comment trier des fichiers par types et par tailles?
    Par xXO--Hades--OXx dans le forum Android
    Réponses: 3
    Dernier message: 07/12/2010, 12h09
  3. Trier des fichiers par poids
    Par debutant14 dans le forum Windows XP
    Réponses: 2
    Dernier message: 11/08/2009, 16h10
  4. Trier des fichiers par taille par le VB
    Par tedparker dans le forum Access
    Réponses: 2
    Dernier message: 23/08/2006, 11h59
  5. trier des fichiers avec un tableau flexgrid
    Par digger dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 08/12/2005, 15h20

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