A TTL of 0 will keep the cache persistant.
diff --git a/system/libraries/Cache/drivers/Cache_file.php b/system/libraries/Cache/drivers/Cache_file.php
index 0823196..028875b 100644
--- a/system/libraries/Cache/drivers/Cache_file.php
+++ b/system/libraries/Cache/drivers/Cache_file.php
@@ -73,7 +73,7 @@
 
 		$data = unserialize(file_get_contents($this->_cache_path.$id));
 
-		if (time() >  $data['time'] + $data['ttl'])
+		if ($data['ttl'] > 0 AND time() >  $data['time'] + $data['ttl'])
 		{
 			unlink($this->_cache_path.$id);
 			return FALSE;