如何批量清理系统临时文件(语言:C#、 C/C++、 php 、python 、java )


Posted in PHP onFebruary 01, 2016

语言之争由来已久,下面做一些IO实验(遍历9G多的文件,批量删除),尽量用事实来比较谁优谁劣。操作系统:win7 64 位,文件包大小:9.68G。

一、语言:C#

开发环境:vs 2013

代码总行数:43行

耗时:7秒

代码:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BatchDelete
{
class Program
{
static void Main(string[] args)
{
// 输入目录 e:\tmp
string path;
Console.WriteLine("输入要清理的目录:");
path = Console.ReadLine();
// 开始计时
Console.WriteLine("开始计时:"+DateTime.Now.ToString("HH:mm:ss"));
// 先遍历匹配查找再循环删除
if (Directory.Exists(path))
{
Console.Write("正在删除");
foreach (string fileName in Directory.GetFileSystemEntries(path))
{
if (File.Exists(fileName) && fileName.Contains("cachegrind.out"))
{
File.Delete(fileName);
}
}
Console.WriteLine("");
}
else
{
Console.WriteLine("该目录不存在!");
}
// 计时结束
Console.WriteLine("结束计时:" + DateTime.Now.ToString("HH:mm:ss"));
Console.ReadKey();
}
}
}

运行效果图:

如何批量清理系统临时文件(语言:C#、 C/C++、 php 、python 、java )

二、语言:C/C++

开发环境:vs 2013

代码总行数:50行

耗时:36秒

代码:

#include <iostream>
#include <string>
#include <Windows.h>
#include <boost\filesystem\operations.hpp>
#include <boost\filesystem\path.hpp>
#include <boost\filesystem\convenience.hpp>
#include <boost\algorithm\string.hpp>
using namespace std;
int main(int argc, char * argv[])
{
// 输入目录 e:\tmp
string strPath;
cout << "输入要清理的目录:" << endl;
getline(cin, strPath);
// 开始计时 
SYSTEMTIME sys_time; //声明变量
GetLocalTime(&sys_time); //将变量值设置为本地时间
printf("开始计时:%02d:%02d:%02d\n", sys_time.wHour,sys_time.wMinute,sys_time.wSecond);
// 先遍历匹配查找再循环删除
namespace fs = boost::filesystem;
fs::path full_path(fs::initial_path());
full_path = fs::system_complete(fs::path(strPath, fs::native));
if (fs::exists(full_path))
{
cout << "正在删除" ;
fs::directory_iterator item_begin(full_path);
fs::directory_iterator item_end;
for (; item_begin != item_end; item_begin++)
{
if (!fs::is_directory(*item_begin))
{
if (fs::exists(item_begin->path()) && boost::contains(item_begin->path().string(), "cachegrind.out"))
{
fs::remove(item_begin->path());
}
}
}
cout << "" << endl;
}
else
{
cout << "该目录不存在!" << endl;
}
// 计时结束
GetLocalTime(&sys_time);
printf("计时结束:%02d:%02d:%02d\n", sys_time.wHour, sys_time.wMinute, sys_time.wSecond);
system("pause");
return 0;
}

运行效果图:

如何批量清理系统临时文件(语言:C#、 C/C++、 php 、python 、java )

三、语言:PHP

开发环境:Phpstorm

代码总行数:32行

耗时:13秒

代码:

<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 16-1-29
* Time: 上午9:31
*/
date_default_timezone_set('prc');
//输入目录 e:\tmp
$path = 'e:\tmp';
//开始计时
echo date("H:i:s",time()) . '<br/>';
//先遍历匹配查找再循环删除
if(is_dir($path))
{
echo "正在删除";
$mydir = dir($path);
while($file = $mydir->read())
{
if(file_exists("$path/$file") && strpos($file, 'cachegrind.out') === 0)
{
unlink("$path/$file");
}
}
echo '<br/>';
}
else
{
echo "该目录不存在!" . '<br/>';
}
//计时结束
echo date("H:i:s",time()) . '<br/>';

运行效果图:

如何批量清理系统临时文件(语言:C#、 C/C++、 php 、python 、java )

四、语言:Java

开发环境:eclipse

代码总行数:43行

耗时:10秒

代码:

package com.yejing;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
// 输入目录 e:\tmp
String path = null;
System.out.println("输入要清理的目录:");
path = s.next();
// 开始计时
Date nowTime=new Date(); 
SimpleDateFormat time=new SimpleDateFormat("HH:mm:ss"); 
System.out.println("开始计时:"+ time.format(nowTime)); 
// 先遍历匹配查找再循环删除
File dir = new File(path);
if(dir.exists()){
System.out.print("正在删除");
File[] fs = dir.listFiles();
for(int i=0;i<fs.length;i++){
if(!fs[i].isDirectory()){
if(fs[i].isFile() && fs[i].exists() && fs[i].getName().contains("cachegrind.out"))
{
fs[i].delete(); 
}
}
}
System.out.println("");
}else{
System.out.println("该目录不存在!");
}
// 计时结束
nowTime=new Date(); 
System.out.println("开始计时:"+ time.format(nowTime)); 
}
}

运行效果图:

如何批量清理系统临时文件(语言:C#、 C/C++、 php 、python 、java )

五、语言:Python 3.3.5

开发环境:IDLE

代码总行数:20行

耗时:10秒

代码:

# -*- coding: utf-8 -*- 
import datetime
import os
# 输入目录 e:\tmp
path = input("输入要清理的目录:\n");
# 开始计时
print("开始计时:",datetime.datetime.now().strftime('%H:%M:%S'));
# 先遍历匹配查找再循环删除
if(os.path.exists(path)):
print("正在删除");
for parent,dirnames,filenames in os.walk(path):
for filename in filenames:
targetFile = os.path.join(parent,filename)
if (os.path.isfile(targetFile) and "cachegrind.out" in targetFile):
os.remove(targetFile)

else:

print("该目录不存在!");
# 计时结束
print("结束计时:",datetime.datetime.now().strftime('%H:%M:%S'));

运行效果图:

如何批量清理系统临时文件(语言:C#、 C/C++、 php 、python 、java )

PHP 相关文章推荐
NOT NULL 和NULL
Jan 15 PHP
PHP 显示客户端IP与服务器IP的代码
Oct 12 PHP
PHP下通过file_get_contents的代理使用方法
Feb 16 PHP
PHP计划任务、定时执行任务的实现代码
Apr 23 PHP
php cookies中删除的一般赋值方法
May 07 PHP
php笔记之:php函数range() round()和list()的使用说明
Apr 26 PHP
PHP中使用Session配合Javascript实现文件上传进度条功能
Oct 15 PHP
php使用递归计算文件夹大小
Dec 24 PHP
PHP通过反射动态加载第三方类和获得类源码的实例
Nov 27 PHP
PHP AjaxForm提交图片上传并显示图片源码
Nov 29 PHP
PHP 图片合成、仿微信群头像的方法示例
Oct 25 PHP
thinkphp框架表单数组实现图片批量上传功能示例
Apr 04 PHP
PHP自带方法验证邮箱是否存在
Feb 01 #PHP
YII CLinkPager分页类扩展增加显示共多少页
Jan 29 #PHP
实例详解PHP中html word 互转的方法
Jan 28 #PHP
PHP Curl模拟登录微信公众平台、新浪微博实例代码
Jan 28 #PHP
PHP的压缩函数实现:gzencode、gzdeflate和gzcompress的区别
Jan 27 #PHP
PHP文件上传之多文件上传的实现思路
Jan 27 #PHP
PHP内核学习教程之php opcode内核实现
Jan 27 #PHP
You might like
历史证明,懒惰才是推动科学发展技术进步的动力
2021/03/02 无线电
PHP 设计模式之观察者模式介绍
2012/02/22 PHP
php检查函数必传参数是否存在的实例详解
2017/08/28 PHP
阿里云的WindowsServer2016上部署php+apache
2018/07/17 PHP
strpos() 函数判断字符串中是否包含某字符串的方法
2019/01/16 PHP
jQuery的.live()和.die() 使用介绍
2011/09/10 Javascript
js实现同一页面多个不同运动效果的方法
2015/04/10 Javascript
JavaScript面对国际化编程时的一些建议
2015/06/24 Javascript
jQuery实现html元素拖拽
2015/07/21 Javascript
Javascript复制实例详解
2016/01/28 Javascript
使用js获取地址栏参数的方法推荐(超级简单)
2016/06/14 Javascript
微信小程序 特效菜单抽屉效果实例代码
2017/01/11 Javascript
vue实现简单实时汇率计算功能
2017/01/15 Javascript
js中url对象化管理分析
2017/12/29 Javascript
cnpm加速Angular项目创建的方法
2018/09/07 Javascript
Vue表单控件绑定图文详解
2019/02/11 Javascript
原生JS实现拖拽效果
2020/12/04 Javascript
python爬取网站数据保存使用的方法
2013/11/20 Python
python在openstreetmap地图上绘制路线图的实现
2019/07/11 Python
如何在VSCode上轻松舒适的配置Python的方法步骤
2019/10/28 Python
使用Python制作缩放自如的圣诞老人(圣诞树)
2019/12/25 Python
Python和Anaconda和Pycharm安装教程图文详解
2020/02/04 Python
python读取文件指定行内容实例讲解
2020/03/02 Python
关于tensorflow softmax函数用法解析
2020/06/30 Python
Python 下载Bing壁纸的示例
2020/09/29 Python
老教师工作总结的自我评价
2013/09/27 职场文书
三八妇女节活动主持词
2014/03/17 职场文书
学校三节实施方案
2014/06/09 职场文书
求职教师自荐书
2014/06/19 职场文书
党员个人整改方案及措施
2014/10/25 职场文书
党的群众路线教育实践活动总结
2014/10/30 职场文书
贪污受贿检讨书范文
2014/11/19 职场文书
美术教师个人工作总结
2015/02/06 职场文书
检讨书格式
2019/04/25 职场文书
实用干货:敬酒词大全,帮你应付各种场合
2019/11/21 职场文书
使用opencv-python如何打开USB或者笔记本前置摄像头
2022/06/21 Python