Titan91 Δημοσ. 24 Μαΐου 2010 Δημοσ. 24 Μαΐου 2010 Πως μπορεί κάποιος να συγκρίνει δυο καταλόγους σε γλώσσα C και να εμφανίσει τις διαφορές τους ως προς τα αρχεία που περιέχουν;
bookysmell2004 Δημοσ. 24 Μαΐου 2010 Δημοσ. 24 Μαΐου 2010 Δες εδώ http://en.wikipedia.org/wiki/Dirent.h παράδειγμα επιστροφής των αρχείων ενός καταλόγου. Παίζει και σε Windows (έχει download link) και σε Linux.
firewalker Δημοσ. 24 Μαΐου 2010 Δημοσ. 24 Μαΐου 2010 Τι σύγκριση; Προς το πλήθος των αρχείων; Ρίξε μια ματιά στο dirent.h. Edit: Με προλάβανε.
Titan91 Δημοσ. 24 Μαΐου 2010 Μέλος Δημοσ. 24 Μαΐου 2010 Καταρχήν ευχαριστώ για τις απαντήσεις. Έχω καταφέρει να εισάγω καταλόγους στο πρόγραμμα εκεί που κολλάω είναι η σύγκριση. Σύγκριση όχι προς το πλήθος αλλά προς το ποια αρχεία που εμπεριέχονται στους καταλόγους είναι ίδια. Για παράδειγμα έχουμε δυο καταλόγους test, test1 O test περιέχει 123.txt O test1 περιέχει 123.txt και cc.txt Θέλω να εμφανίζει οτι οι δυο κατάλογοι έχουν κοινό το 123.txt
bxenos Δημοσ. 24 Μαΐου 2010 Δημοσ. 24 Μαΐου 2010 >if(![url="http://msdn.microsoft.com/en-us/library/1w06ktdy.aspx"]_access[/url](filename,0)) ...
bookysmell2004 Δημοσ. 24 Μαΐου 2010 Δημοσ. 24 Μαΐου 2010 Θέλω να εμφανίζει οτι οι δυο κατάλογοι έχουν κοινό το 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; }
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.