Escludere estensioni su C

di il
10 risposte

Escludere estensioni su C

Ho bisogno di escludere dei file dalla mia directory con un programma C senza usare librerie di Linux, come mi consigliate di fare?
Per esempio dentro una directory devo escludere (quando la visito) i file .exe e .tgz.
Grazie per le risposte

10 Risposte

  • Re: Escludere estensioni su C

    Escludere da cosa? Dal tuo programma stesso? In quel caso basta controllare che le stringhe dei nomi dei file non finiscano appunto in ".exe" o ".tgz"
  • Re: Escludere estensioni su C

    Weierstrass ha scritto:


    Escludere da cosa? Dal tuo programma stesso? In quel caso basta controllare che le stringhe dei nomi dei file non finiscano appunto in ".exe" o ".tgz"
    Stavo pensando di usare Strtokenizer per dividere il nome del file dalla sua estenzione per poi confrontarlo con l'estenzione da escludere tramite Strcmp, cosa ne pensi? Come lo faresti?
  • Re: Escludere estensioni su C

    Intanto si scrive estensioni e non estensioni.

    Poi non si capisce ancora nulla.

    Strtokenizer è java... di che stiamo parlando??
  • Re: Escludere estensioni su C

    oregon ha scritto:


    Intanto si scrive estensioni e non estensioni.

    Poi non si capisce ancora nulla.

    Strtokenizer è java... di che stiamo parlando??
    Scusami mi sono sbagliato a scrivere, comunque stiamo parlando di un programma C che deve entrare in una directory ed analizzare i file che ci sono al suo interno, però se gli do un comando --exclude lui mi toglie dei determinati file da me specificati.
    Sto lavorando su VS code.
  • Re: Escludere estensioni su C

    Hai scritto del codice? Mostralo ...
  • Re: Escludere estensioni su C

    Vabbé deduco che non hai fatto nulla. Hai scelto un linguaggio scomodissimo per quello che vuoi fare.
    Usa, appunto, Java o magari C#
            static void Main(string[] args)
            {
                string[] Lista = System.IO.Directory.GetFiles(@"\");
                Console.WriteLine("Lista dei file:");
                    foreach (string nome in Lista)
                        if (args.Length > 1 && args[0] == "--exclude")
                        {
                            bool b = true;
                            for (int i = 1; i < args.Length; i++)
                                if (nome.ToLower().EndsWith(args[i].ToLower()))
                                    b = false;
                            if (b)
                                Console.WriteLine(nome);
                        }
                        else
                            Console.WriteLine(nome);
                Console.Read();
            }
  • Re: Escludere estensioni su C

    Purtroppo devo farlo su C per forza!!
    Ma quindi strtok non va bene? Non ho scritto codice perché non ho ancora un'idea.
    Grazie comunque per l'aiuto.
  • Re: Escludere estensioni su C

    Si che si può fare in C ma è molto lungo e il codice è pure poco portabile. Comincia a scrivere come ti ha detto oregon, poi eventualmente si può darti una mano su punti specific
  • Re: Escludere estensioni su C

    Usa tranquillamente strtok ... scrivi qualcosa e poi vediamo
  • Re: Escludere estensioni su C

    Secondo la mia modestissima personale opinione il C è ottimo per produrre un codice semplice, ad alta prestazione e alta portabilità per questo tipo di operazioni.
    
    bool IsFiletype(const wchar_t *restrict wcsFilename)
    {
    	while( *wcsFilename++ );		// Vai alla fine della stringa filename,
    	while( *--wcsFilename != '.' );		// trova l'inizio dell'estensione.
    	
    	if( ... ) return true;			// completare come esercizio.
    	return false;
    }
    
Devi accedere o registrarti per scrivere nel forum
10 risposte