Προς το περιεχόμενο

Απορία C


Titan91

Προτεινόμενες αναρτήσεις

Δημοσ.

Πως μπορεί κάποιος να συγκρίνει δυο καταλόγους σε γλώσσα C και να εμφανίσει τις διαφορές τους ως προς τα αρχεία που περιέχουν;

Δημοσ.

Καταρχήν ευχαριστώ για τις απαντήσεις. Έχω καταφέρει να εισάγω καταλόγους στο πρόγραμμα εκεί που κολλάω είναι η σύγκριση. Σύγκριση όχι προς το πλήθος αλλά προς το ποια αρχεία που εμπεριέχονται στους καταλόγους είναι ίδια.

Για παράδειγμα έχουμε δυο καταλόγους test, test1

O test περιέχει 123.txt

O test1 περιέχει 123.txt και cc.txt

Θέλω να εμφανίζει οτι οι δυο κατάλογοι έχουν κοινό το 123.txt

Δημοσ.
Θέλω να εμφανίζει οτι οι δυο κατάλογοι έχουν κοινό το 123.txt

Το σχετικό άρθρο στη Wikipedia έχει υλοποιημένη μια μέθοδο get_all_files, που επιστρέφει όλα τα αρχεία ενός καταλόγου. Από κει και πέρα, νομίζω οφείλεις να κάνεις μια προσπάθεια μόνος σου. Το μόνο που πρέπει να κάνεις είναι μια επανάληψη και χρήση της strcmp για έλεγχο αν δύο αρχεία έχουν ίδιο file name. Καλημέρα!

 

 

>int main (int argc, char *argv[]) {
 char **first_dir_files, char **second_dir_files;
 char *iter1, *iter2;
 int i, j;

 first_dir_files = get_all_files(*(argv + 1));
 second_dir_files = get_all_files(*(argv + 2));

 for (i = 0, iter1 = *first_dir_files ; iter1 != NULL ; i++, iter1 = *(first_dir_files + i))
 {
  for (j = 0, iter2 = *second_dir_files ; iter2 != NULL ; j++, iter2 = *(second_dir_files + j))
  {
	  if (!strcmp(iter1, iter2))
	  {
		  printf("Idio filename: %s\n", iter1);
	  }
  }
 }

 return 0;
}

 

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...