我的代碼是這樣的:刪除文件,而讀取與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);
(此代碼是未經測試,純粹是一個例子)
的一點是:是否允許刪除使用readdir()循環目錄中的文件在目錄中? 或者將readdir()仍然找到被刪除的.log文件?
LOL @'man 2 readdir':「這不是你感興趣的功能。」 – pmg 2009-11-04 21:05:51
相同的手冊頁說:「目錄條目代表文件;文件可能會從目錄中刪除或添加到目錄異步的操作readdir()」 但也許最好避免這個!? – To1ne 2009-11-05 19:25:25