Visualizzazione dei risultati da 1 a 4 su 4

Discussione: [C#] Dir multifilter

  1. #1

    [C#] Dir multifilter

    Ciao a tutti,
    devo cercare i file presenti in una cartella passando più filtri.
    Per esempio nella stessa cartella devo:
    - Trovare tutti i file tramite il filtro *ABC*.TXT|*.XLS (per poi compiere delle azioni su questi file)
    - Trovare tutti i file tramite il filtro *AAA.DAT (per poi compiere azioni diverse dai file individuati nella ricerca precedente).


    Per ora effettuo due ricerche diverse, ovvero
    codice:
    var filtri_files = filtri.Select(i => 
    	new { 
    		filtro = i, 
    		files = myPath.GetFiles(i, SearchOption.TopDirectoryOnly).ToList() 
    	}).GroupBy(i => i.filtro);

    Funziona, però mi piacerebbe effettuare un'unica ricerca su filesystem per migliorare le performance.
    Avete idee?
    Grazie!

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    23,956
    Quote Originariamente inviata da Luciano79 Visualizza il messaggio
    Funziona, però mi piacerebbe effettuare un'unica ricerca su filesystem per migliorare le performance.
    Avete idee?
    Metti tutti i filtri che ti interessano in una ricerca unica, e poi fai un ciclo sui file discriminandoli in base all'estensione, in modo da ottenerli tutti assieme e discriminare poi le azioni da fare in base a un set di regole simile ma eventualmente più preciso e mirato.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Quote Originariamente inviata da alka Visualizza il messaggio
    Metti tutti i filtri che ti interessano in una ricerca unica, e poi fai un ciclo sui file discriminandoli in base all'estensione, in modo da ottenerli tutti assieme e discriminare poi le azioni da fare in base a un set di regole simile ma eventualmente più preciso e mirato.
    Grazie,
    ho avuto anche io la stessa idea, poi l'ho messa da parte perchè i filtri non identificano solo l'estensione, nell'esempio ho messo volutamente "*ABC*.TXT". L'estensione potrebbe anche non essere indicata, visto che il filtro può essere scritto dall'utente (utente tecnico), potrebbe essere qualcosa del tipo:
    "*ABC*|*.XXX".

    Immaginiamo quindi di avere i seguenti filtri scritti da un utente:
    1) *ABC*.*|*.XXX
    2) *.txt
    3) *ZZZ*.*
    Anche se dovessi riuscire ad ottenere un'unica List<FileInfo>, non riesco ad immaginare come dividerla in 3 liste, una per ogni filtro.

  4. #4
    se l'estensione non identifica la funzionalità, non c'è modo di "ottimizzare"

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2021 vBulletin Solutions, Inc. All rights reserved.