Mon code est quelque chose comme ceci:Supprimer les fichiers en lecture du répertoire avec readdir()
DIR* pDir = opendir("/path/to/my/dir");
struct dirent pFile = NULL;
while ((pFile = readdir())) {
// Check if it is a .zip file
if (subrstr(pFile->d_name,".zip") {
// It is a .zip file, delete it, and the matching log file
char zipname[200];
snprintf(zipname, sizeof(zipname), "/path/to/my/dir/%s", pFile->d_name);
unlink(zipname);
char* logname = subsstr(zipname, 0, strlen(pFile->d_name)-4); // Strip of .zip
logname = appendstring(&logname, ".log"); // Append .log
unlink(logname);
}
closedir(pDir);
(ce code est non testé et purement un exemple)
Le point est: Est-il permis de supprimer un fichier dans un répertoire en boucle dans le répertoire avec readdir()? Ou readdir() trouvera-t-il toujours le fichier .log supprimé?
LOL @ 'man 2 readdir':" Ce n'est pas la fonction qui vous intéresse. " – pmg
La même page de manuel indique: "Les entrées du répertoire représentent les fichiers, les fichiers peuvent être supprimés d'un répertoire ou ajoutés à un répertoire de manière asynchrone à readdir()" Mais peut-être vaut mieux éviter cela !? – To1ne