`
xiaochengfu1
  • 浏览: 35517 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

定时删除临时文件

    博客分类:
  • java
 
阅读更多
public class TimerDeleteFilesTask implements ITask
{
	private List<FileInfo> files;

	public class FileInfo
	{
		private String folderPath;

		private String regexpFileName;

		private boolean isRecursive;


		/**
		 * 删除目录及目录下的文件
		 * 
		 * @param folderPath - 文件路径
		 * @param regexpFileName - 匹配的后缀名称
		 * @param isRecursive - 是否递归删除
		 */
		public FileInfo(String folderPath, String regexpFileName, boolean isRecursive)
		{
			this.folderPath = folderPath;
			this.regexpFileName = regexpFileName;
			this.isRecursive = isRecursive;
		}
	}

	
	/**
	 * 构造方法
	 * 
	 * @throws IOException
	 */
	public TimerDeleteFilesTask() throws IOException
	{
		this.files = new ArrayList<FileInfo>();
		String tempPath = Config.getInstance().getLogDownloadTempPath();
		this.files.add(new FileInfo(tempPath, ".*.xls", true));
	}


	/**
	 * 任务执行之前
	 */
	public boolean beforeExecute()
	{
		return true;
	}


	/**
	 * 执行任务
	 */
	public void execute()
	{
		for ( FileInfo fileInfo : files )
		{
			// 判断是否是递归删除
			if ( fileInfo.isRecursive )
			{
				recureDeleteFile(new File(fileInfo.folderPath), fileInfo.regexpFileName);
			}
			else
			{
				deleteFiles(fileInfo.folderPath, fileInfo.regexpFileName);
			}
		}
	}
	
	
	/**
	 * 任务执行之后
	 */
	public void afterExecute()
	{
	}


	/**
	 * 查找某目录下指定扩展名的文件
	 * 
	 * @param folderPath - 查找的目录路径
	 * @param regexpFileName-匹配文件后缀名的正则
	 */
	private void deleteFiles(String folderPath, final String regexpFileName)
	{
		File[] files = new File(folderPath).listFiles();
		for ( int i = 0; i < files.length; ++i )
		{
			File file = files[i];
			if ( file.isFile() )
			{
				try
				{
					Pattern p = Pattern.compile(regexpFileName);
					Matcher m = p.matcher(regexpFileName);
					if ( m.find() )
					{
						file.delete();
					}
				}
				catch ( Exception e )
				{
					e.printStackTrace();
				}
			}
		}

	}


	/**
	 * 递归删除路径下的指定后缀名的文件及文件夹
	 * 
	 * @param path-文件路径
	 * @param regexpFileName-匹配文件后缀名的正则
	 */
	private void recureDeleteFile(File folder, String regexpFileName)
	{
		File[] files = folder.listFiles();
		if (null == files)
		{
			return;
		}
		for ( File file : files )
		{
			// 判断是文件还是目录,如果是文件直接删除,如果是目录再调用本身方法递归删除
			if ( file.isFile() )
			{
				try
				{
					Pattern p = Pattern.compile(regexpFileName);
					Matcher m = p.matcher(regexpFileName);
					if ( m.find() )
					{
						file.delete();
					}
				}
				catch ( Exception e )
				{
					e.printStackTrace();
				}
			}
			else
			{
				recureDeleteFile(file, regexpFileName);

			}
		}
	}
	@Override
	public Priority getPriority()
	{
		return Priority.LOW;
	}
}
分享到:
评论

相关推荐

    文件目录监控 定时删除文件

    在IT领域,文件目录监控和定时删除文件是系统管理和维护中的常见任务,尤其在服务器环境和数据库备份场景中。这个工具显然设计用于自动化这个过程,确保磁盘空间的有效利用。以下是对标题和描述中涉及的知识点的详细...

    定时删除指定目录下指定文件类型的文件 源码

    - 临时文件管理:在服务器上自动清理不再使用的临时文件。 - 数据备份策略:在数据备份后,自动删除超过保留期限的旧备份。 综上所述,这个"定时删除指定目录下指定文件类型的文件 源码"是一个实用的工具,它结合...

    定时删除文件

    有些第三方软件如CCleaner也提供了定时清理功能,可一键清理临时文件、系统垃圾等。 总结,定时删除文件是一个实用的IT技能,涉及到操作系统的基础知识,包括批处理、shell脚本、任务计划程序和cron等。理解并熟练...

    C#定时删除带日期的文件

    在C#编程中,定时删除带日期的文件是一项常见的任务,尤其在日志管理、临时文件清理等场景中。为了实现这一功能,我们需要结合使用文件系统操作和定时任务。以下是一份详细的步骤和知识点解析: 1. **文件系统操作*...

    临时文件删除工具

    《临时文件删除工具详解》 在日常的计算机使用过程中,我们常常会遇到硬盘空间不足的情况,这往往是因为系统和应用程序生成了大量的临时文件和中间文件。这些文件虽然在某些操作过程中起到重要作用,但一旦任务完成...

    定时删除文件夹软件

    3. **个人电脑**:对于个人用户,定期清理临时文件、下载目录等,可以避免磁盘空间被无意识占用。 使用定时删除软件的优点包括: 1. **自动化**:解放用户手动清理文件的时间,让计算机自动处理。 2. **预防性**:...

    赛白努服务器定时删除文件工具 V2.0

    这对于定期清理日志文件、临时文件或其他临时数据非常有用。 2. **配置文件**:配置文件`config.ini`是控制工具行为的关键。用户可以通过编辑此文件来设定要删除的文件目录(dirs)、删除依据(deltype)、保留天数...

    亲测有效,C#通过配置文件,线程定时递归删除文件夹下所有文件,包括子文件夹中的文件,log4net记录删除日志

    这样的解决方案对于需要定期清理日志、备份或其他临时文件的系统非常实用,同时通过log4net提供了一定的审计和故障排查能力。通过理解和应用这些知识点,开发者可以构建出高效且可靠的文件管理系统。

    定时清理文件夹下的文件或文件夹

    在IT领域,定时清理文件夹下的文件或文件夹是一个常见的需求,特别是在系统维护、日志管理、临时数据处理等场景中。本主题将深入探讨如何使用C#编程语言实现这样的功能,并结合定时任务来自动执行删除操作。 首先,...

    定时垃圾文件自动删除工具

    垃圾文件可能包括临时文件、系统日志、应用缓存、未使用的DLL文件、无效的注册表项等。这些文件在日常使用过程中逐渐积累,如果不进行定期清理,可能会导致硬盘空间紧张,甚至影响系统运行速度。自动删除工具通过...

    web项目中定时删除某指定路径下的文件

    在Web项目中,定时删除指定路径下的文件是一个常见的需求,特别是在日志管理、临时文件清理或者资源更新等场景。这个任务通常由服务器端程序来执行,以确保系统的高效运行和资源的有效利用。以下是对这个主题的详细...

    清除临时文件-自己编辑的

    2. **使用系统工具**:许多操作系统提供了内置的磁盘清理工具,如Windows的"磁盘清理"功能,它可以自动识别并删除无用的临时文件。 3. **第三方软件**:市场上有许多免费和付费的系统优化软件,如CCleaner,能够...

    微信、企业微信、系统临时文件清理工具

    微信、企业微信、系统临时文件temp清理批处理,有效释放C盘空间. 温馨提示:微信缓存内有重要数据者慎用!

    VS临时文件清理小工具.rar

    在开发环境中,Visual Studio(VS)作为一款强大的集成开发环境,常常在编译、调试项目时生成大量的临时文件。这些临时文件包括中间编译产物、调试信息等,它们占用硬盘空间,有时还可能导致磁盘碎片,甚至在某些...

    WINDOWS下定期自动清理文件工具

    文件清理是指通过删除不必要的文件,如临时文件、日志文件、系统缓存等,来释放硬盘空间,提高系统性能。这些无用文件长时间累积会占用大量存储资源,可能导致系统运行缓慢,甚至影响到软件的正常运行和更新。 ...

    Linux使用shell脚本定时删除历史日志文件

    `adirname`函数用于获取给定文件的绝对路径,而`MYNAM`、`MYDIR`、`MYCFG`、`MYTMP`和`MYLCK`等变量分别保存了脚本名、脚本所在目录、配置文件路径、临时文件目录和锁定文件路径。锁定机制确保脚本不会同时运行两次...

    临时中转文件

    - 文件清理策略:可以使用定时任务或者事件驱动的方式定期清理无用的临时文件,避免占用过多磁盘空间。 5. **编程语言中的实现**: - Python:`tempfile`模块提供创建临时文件和目录的功能,支持自动删除。 - ...

    运行状态强制删除文件自身【模块 例子】

    4. **临时文件替换**:程序可以先创建一个临时文件,将自身的内容复制到临时文件,然后删除原文件,最后再重命名临时文件为原文件名。这样,虽然文件名改变了,但程序内容仍在,且原文件已被删除。 5. **利用系统...

    tomcat文件上传下载、删除

    3. 异步删除:在某些情况下,可能需要等待一段时间后再次尝试删除,或者通过后台任务定时清理。 4. 使用强制删除:Java的`Files`类提供了`delete()`方法,可以尝试强制删除,但请注意这可能导致数据丢失。 总结,...

Global site tag (gtag.js) - Google Analytics