Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Trovare file in una directory
Forum - C# / VB.NET - Trovare file in una directory

Avatar
fosforo (Normal User)
Expert


Messaggi: 365
Iscritto: 06/04/2009

Segnala al moderatore
Postato alle 17:22
Martedì, 31/08/2021
Ciao

Sembra banale ma non riesco a trovare dei file in una Directory.
Nella directory ci sono file con questa nomenclatura:

Pippo.xml_ERROR
Pluto.xml_ERROR
etc
etc

Ce ne sono 1064 in tutto.

Uso:
foreach (string dirFile in Directory.GetFiles(PathXML, "*.xml_ERROR", SearchOption.TopDirectoryOnly).Select(Path.GetFileName).ToArray());

ma trovo solo 14 file.

Ho fatto vari tentativi ma non ne vengo a capo.

Grazie anticipatamente.

PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 972
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 20:42
Martedì, 31/08/2021
così?:

Codice sorgente - presumibilmente Delphi

  1. string[] cartella; // array che conterrà i nomi dei files con percorso completo
  2. cartella = System.IO.Directory.GetFiles(PathXML, "*.xml_ERROR");
  3.  
  4. // Non so poi come devi visualizzare i file, per esempio in tre listbox
  5.  
  6. // tutti i file completi di percorso ed estensione
  7. listBox1.Items.AddRange(cartella);
  8.  
  9. for (int i = 0; i < cartella.Length; i++)
  10. {
  11.       // tutti i nomi dei file con estensione
  12.       listBox2.Items.Add(System.IO.Path.GetFileName(cartella[i]));
  13.       // tutti i nomi dei file senza estensione
  14.       listBox3.Items.Add(System.IO.Path.GetFileNameWithoutExtension(cartella[i]));
  15. }



oppure più simile a come volevi fare tu:
Codice sorgente - presumibilmente C# / VB.NET

  1. foreach (string dirFile in System.IO.Directory.GetFiles(PathXML, "*.xml_ERROR"))
  2. {
  3.       // tutti i nomi dei file con estensione
  4.       listBox1.Items.Add(System.IO.Path.GetFileName(dirFile));
  5. }


Ultima modifica effettuata da Carlo il 31/08/2021 alle 22:27


in programmazione tutto è permesso
PM Quote
Avatar
fosforo (Normal User)
Expert


Messaggi: 365
Iscritto: 06/04/2009

Segnala al moderatore
Postato alle 9:41
Mercoledì, 01/09/2021
Ciao Carlo
Grazie per l'aiuto.

Purtroppo mi da sempre solo 12 file trovati su 1064.

Prorpio non capisco.
Se invece di .*.xml_ERROR uso .XML oppure .XML_OK il risultato è corretto.

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6172
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 11:24
Mercoledì, 01/09/2021
Sicuro che i file abbiano tutti quella estensione? Forse pensi sia così ma c'è qualche carattere che non vedi in più.
Sicuro che c'è un solo _ oppure in alcuni ce ne sono due __

?

Apri una finestra DOS e usa il DIR per controllo

Ultima modifica effettuata da nessuno il 01/09/2021 alle 11:26


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 972
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 11:27
Mercoledì, 01/09/2021
Oltre al controllo che ti ha consigliato nessuno, controlla lettera per lettera, con meticolosa attenzione il contenuto di: PathXML
Mi viene da pensare che cerchi i files in un'altra caretella con nome uguale ma percorso leggermente diverso.

Ultima modifica effettuata da Carlo il 01/09/2021 alle 11:29


in programmazione tutto è permesso
PM Quote
Avatar
fosforo (Normal User)
Expert


Messaggi: 365
Iscritto: 06/04/2009

Segnala al moderatore
Postato alle 14:23
Mercoledì, 01/09/2021
Ciao

Ho fatto tutti i controlli, controllo nomi ok, con DIR li vede.

Ma ho fatto un tentativo con un file.
Spostato in un'altra cartella e copiato nella cartella originale.
Lo vede.
Fatto con tutti i file.
Adesso li vede tutti anche con il mio codice.

Non so.:-?

PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 972
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 15:46
Mercoledì, 01/09/2021
Mi vengono delle idee ma sono talmente strampalate che te le risparmio :rotfl:

Visto che hai detto che funziona, ho riguardato il tuo codice:

foreach (string dirFile in Directory.GetFiles(PathXML, "*.xml_ERROR", SearchOption.TopDirectoryOnly).Select(Path.GetFileName).ToArray());

come recuperi l'elenco dei files trovati?


in programmazione tutto è permesso
PM Quote
Avatar
fosforo (Normal User)
Expert


Messaggi: 365
Iscritto: 06/04/2009

Segnala al moderatore
Postato alle 20:39
Mercoledì, 01/09/2021
Metto tutto in una List e poi, visualizzo tutto con un datagridview.

PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 972
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 23:24
Mercoledì, 01/09/2021
Ok :k:

Ultima modifica effettuata da Carlo il 02/09/2021 alle 0:39


in programmazione tutto è permesso
PM Quote