Snippets

temp 폴더의 기간 지난 파일 삭제 하기

지정한 폴더안 파일들 중에 지정한 날짜 이전의 자료들은 모두 삭제 하도록 하는 함수이다.

파일이 생성된 날짜를 비교하여 삭제하기 때문에 temp 폴더 등에서 임시적으로 사용되고나서 특정기간이 지난이후에 삭제 하도록 하기 위하여 사용하면 좋다.

function DeleteOldTempFiles($tempfile_path, $time) {
    if(is_dir($tempfile_path)) {
        if($dh = opendir($tempfile_path)) {
            while(($file = readdir($dh)) !== false) {
                if($file != "." && $file != "..") {
                    $dest_path = "{$tempfile_path}/{$file}";
                    if(is_dir($dest_path)) {
                        DeleteOldTempFiles($dest_path, $time);
                    } else {
                        $fat = filemtime($dest_path);
                        if($fat < $time) {
                            @unlink($dest_path);
                        }
                    }
                }
            }
            closedir($dh);
        }
    }
}

/*
경로 및 시간값을 넘겨주며, 시간은 타임스템프 이다.
DeleteOldTempFiles($tempfile_path, strtotime("- 1 days"));
*/