none
Recherche d'une fonction equivalente a DIR sous VB

    Question

  • bonjour

    en vue de migrer un programme en VB6 vers C#, je recherche une fonction de remplacement

    le programme récupère les fichiers d'un dossier partagé d'une autre usine. avec l'aide d'une fonction DIR qui retrouve le nom du premier fichier (après traitement le programme efface ce fichier), cette fonction DIR est dans une boucle FOR pour traiter chaque nom de fichier un par un jusqu’à ce qu'il n'y ait plus rien dans le dossier

    il ne trouve que les noms de fichiers remplissant certaines conditions dans leur titre (extension, longueur). les autres sont ignorés. cela donneDir(repertoire + "?????????.T*")

    en C# j'ai trouvé un équivalent: la fonction

    variable = Directory.enumeratefilesystementries(repertoire) puis variable.first().where (x.EndWith(".txt")))

    Auriez vous d'autres idées pour avoir un résultat aussi simple que la fonction dir ci dessus, sachant que j'ai les contraintes suivantes:

    -contrainte de longueur de fichier. ignoré si ne correspond pas

    -extension specifique. ignoré si ne correspond pas

    -grande distance entre les usines

    merci d'avance pour votre aide

    • Modifié Pierre_F lundi 5 février 2018 13:33
    lundi 5 février 2018 13:30

Toutes les réponses

  • Où est le problème ?

    string file = Directory.GetFiles(repertoire,"?????????.T*").FirstOrDefault();

    if(file!=null){...}


    Paul Bacelar, Ex - MVP VC++

    lundi 5 février 2018 16:50
  • Absolument.

    Il peut être utile de s'intéresser à Linq pour manipuler le résultat, ça permettra d'écrire des choses du style

    string[] files = Directory.GetFiles("????????.t*");
    string lefichiertexte = files.where(f => f.name like "*.txt").FirstOrDefault();
    

    C'est juste une porte ouverte. Je ne conseille pas de s'y engouffrer pour finir le projet ce soir, d'autant que je crois bien qu'il y a un souci de syntaxe dans ce que j'ai écrit puisque ça marche pour un objet qui a une propriété name ...

    Mais après, une fois la chose maîtrisée, ça permet des choses plus élégantes et plus efficaces.

    • Proposé comme réponse Gloops lundi 12 février 2018 14:12
    vendredi 9 février 2018 15:42