Ich nehme an, Sie sind vertraut mit der Auflistung aller Dateien (und extrahieren Verzeichnisse) aus einem bestimmten Verzeichnis [Wenn nicht auf opendir/readdir lesen]. Der Algorithmus wird nicht genau sein, weil ein Verzeichnis nach seiner Zeit berührt werden kann Briefmarke wurde überprüft, aber unter der Annahme, das ist kein Problem, hier ist etwas, das Sie vielleicht
DIR *dirp = opendir(".");
struct stat dStat;
time_t latest = 0;
while ((dp = readdir(dirp)) != NULL) {
memset(&dStat, 0, sizeof(dStat));
if (stat(dp->d_name, &dStat) < 0) {
printf("Error getting info on file\n");
continue;
}
// If not a directory skip
if ((dStat.st_mode & S_IFDIR) != S_IFDIR) {
continue;
}
// check with the latest timestamp
if (dStat.st_mtime > latest) {
// On finding a more recent file switch that to latest
strcpy(dName, dp->d_name);
latest = fStat.st_mtime;
}
}
closedir(dirp);
printf("Most recently touched directory %s\n", dName);
tun
Wie stat verwenden: http://unix.stackexchange.com/questions/240418/find-latest-files In Um diesen Befehl in c auszuführen execl. – Michael
Wie ist Ihre Liste von Verzeichnissen aufgebaut? Es wird ein Problem mit der Zeit der Überprüfung für jedes Verzeichnis geben; Wenn Sie tausend Verzeichnisse haben, finden Sie vielleicht eine Modifikationszeit t1 für das erste Verzeichnis, und Sie könnten eine Änderungszeit tN im N-ten Verzeichnis mit t1